sbt
działa w dość standardowy sposób w porównaniu ze sposobem, w jaki zwykle konfigurowane są inne projekty oparte na JVM.
sbt to w rzeczywistości dwa „podsystemy” - wyrzutnia i rdzeń. To jest zazwyczajxsbt.boot.Boot
jest to wykonywane przed uruchomieniem jądra z funkcjami, które wszyscy znamy (a niektórzy nawet lubią).
Dlatego jest to kwestia sposobu wykonania sbt, który mówi, jak skonfigurować proxy dla ruchu sieciowego HTTP, HTTPS i FTP.
Poniżej znajduje się cała lista dostępnych właściwości, które można ustawić dla dowolnej aplikacji Java, w tym sbt, które instruują interfejs Java API, aby kierował komunikację przez serwer proxy:
- http Proxy
- http_proxy_user
- http_proxy_pass
- http.proxyHost
- http.proxyPort
- http.proxyUser
- http.proxyPassword
Zamień http
powyżej na https
i, ftp
aby uzyskać listę właściwości usług.
Niektóre sbt
skrypty służą JAVA_OPTS
do konfigurowania ustawień proxy za pomocą -Dhttp.proxyHost
i -Dhttp.proxyPort
między innymi (wymienione powyżej). Zobacz Sieć Java i serwery proxy .
Niektóre skrypty mają własny sposób konfigurowania konfiguracji proxy za pomocą SBT_OPTS
właściwości .sbtopts
lub (tylko w systemie Windows)%SBT_HOME%\conf\sbtconfig.txt
. Można ich użyć, aby specjalnie ustawić sbt do korzystania z serwerów proxy, podczas gdy inne aplikacje oparte na JVM nie mają żadnego wpływu.
Z sbt
narzędzia wiersza poleceń:
# jvm options and output control
JAVA_OPTS environment variable, if unset uses "$java_opts"
SBT_OPTS environment variable, if unset uses "$default_sbt_opts"
.sbtopts if this file exists in the current directory, it is
prepended to the runner args
/etc/sbt/sbtopts if this file exists, it is prepended to the runner args
-Dkey=val pass -Dkey=val directly to the java runtime
-J-X pass option -X directly to the java runtime
(-J is stripped)
-S-X add -X to sbt's scalacOptions (-S is stripped)
A oto fragment z sbt.bat
:
@REM Envioronment:
@REM JAVA_HOME - location of a JDK home dir (mandatory)
@REM SBT_OPTS - JVM options (optional)
@REM Configuration:
@REM sbtconfig.txt found in the SBT_HOME.
Bądź ostrożny sbtconfig.txt
, że tylko działa na Windows tylko . Kiedy używasz cygwin
pliku, nie jest konsultowany i będziesz musiał skorzystać z innych podejść.
Używam sbt z następującym skryptem:
$JAVA_HOME/bin/java $SBT_OPTS -jar /Users/jacek/.ivy2/local/org.scala-sbt/sbt-launch/$SBT_LAUNCHER_VERSION-SNAPSHOT/jars/sbt-launch.jar "$@"
Celem skryptu jest użycie najnowszej wersji sbt zbudowanej ze źródeł (dlatego używam /Users/jacek/.ivy2/local/org.scala-sbt/sbt-launch/$SBT_LAUNCHER_VERSION-SNAPSHOT/jars/sbt-launch.jar
) z $SBT_OPTS
właściwością jako sposobem przekazywania właściwości JVM do JVM, których używa sbt.
Powyższy skrypt pozwala mi ustawić proxy w wierszu poleceń na MacOS X w następujący sposób:
SBT_OPTS="-Dhttp.proxyHost=proxyhost -Dhttp.proxyPort=9999" sbt
Jak widać, istnieje wiele podejść do ustawiania proxy dla sbt, z których wszystko sprowadza się do ustawienia proxy dla używanej przez JVM maszyny sbt.