sbt funktioniert ziemlich normal im Vergleich zu anderen JVM-basierten Projekten, die normalerweise konfiguriert werden.
sbt ist in der Tat zwei "Subsysteme" - der Launcher und der Kern. Es wird normalerweise xsbt.boot.Bootausgeführt, bevor der Kern mit den Funktionen startet, die wir alle kennen (und manche sogar mögen).
Es kommt daher darauf an, wie Sie sbt ausführen, und wie Sie einen Proxy für HTTP-, HTTPS- und FTP-Netzwerkverkehr einrichten können.
Im Folgenden finden Sie die gesamte Liste der verfügbaren Eigenschaften, die für jede Java-Anwendung festgelegt werden können, einschließlich sbt, die die Java-API anweist, die Kommunikation über einen Proxy weiterzuleiten:
- HTTP-Proxy
- http_proxy_user
- http_proxy_pass
- http.proxyHost
- http.proxyPort
- http.proxyUser
- http.proxyPassword
Ersetzen Sie httpoben durch httpsund ftp, um die Liste der Eigenschaften für die Dienste zu erhalten.
Einige sbtSkripte dienen JAVA_OPTSzum Einrichten der Proxy-Einstellungen mit -Dhttp.proxyHostund -Dhttp.proxyPortunter den anderen (oben aufgeführt). Siehe Java Networking und Proxies .
Einige Skripte verfügen über eine eigene Methode zum Einrichten der Proxy-Konfiguration mithilfe der SBT_OPTSEigenschaft .sbtoptsoder (nur unter Windows) %SBT_HOME%\conf\sbtconfig.txt. Sie können sie verwenden, um sbt speziell für die Verwendung von Proxys festzulegen, während die anderen JVM-basierten Anwendungen überhaupt nicht betroffen sind.
Über das sbtBefehlszeilentool:
# 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)
Und hier kommt ein Auszug aus 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.
Seien Sie vorsichtig mit , sbtconfig.txtdas einfach funktioniert unter Windows nur . Wenn Sie cygwindie Datei verwenden, wird sie nicht konsultiert, und Sie müssen auf die anderen Ansätze zurückgreifen.
Ich verwende sbt mit dem folgenden Skript:
$JAVA_HOME/bin/java $SBT_OPTS -jar /Users/jacek/.ivy2/local/org.scala-sbt/sbt-launch/$SBT_LAUNCHER_VERSION-SNAPSHOT/jars/sbt-launch.jar "$@"
Der Zweck des Skripts besteht darin, die neueste Version von sbt zu verwenden, die aus den Quellen (aus diesem Grund verwende ich /Users/jacek/.ivy2/local/org.scala-sbt/sbt-launch/$SBT_LAUNCHER_VERSION-SNAPSHOT/jars/sbt-launch.jar) mit $SBT_OPTSproperty erstellt wurde, um JVM-Eigenschaften an die von sbt verwendeten JVM-Eigenschaften zu übergeben.
Mit dem obigen Skript kann ich den Proxy in der Befehlszeile unter MacOS X wie folgt festlegen:
SBT_OPTS="-Dhttp.proxyHost=proxyhost -Dhttp.proxyPort=9999" sbt
Wie Sie sehen können, gibt es viele Ansätze zum Festlegen eines Proxys für sbt, die sich alle auf das Festlegen eines Proxys für die von sbt verwendeten JVM beschränken.