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ń httppowyżej na httpsi, ftpaby uzyskać listę właściwości usług.
Niektóre sbtskrypty służą JAVA_OPTSdo konfigurowania ustawień proxy za pomocą -Dhttp.proxyHosti -Dhttp.proxyPortmię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_OPTSwłaściwości .sbtoptslub (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 sbtnarzę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 cygwinpliku, 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_OPTSwł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.