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.Boot
ausgefü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 http
oben durch https
und ftp
, um die Liste der Eigenschaften für die Dienste zu erhalten.
Einige sbt
Skripte dienen JAVA_OPTS
zum Einrichten der Proxy-Einstellungen mit -Dhttp.proxyHost
und -Dhttp.proxyPort
unter 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_OPTS
Eigenschaft .sbtopts
oder (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 sbt
Befehlszeilentool:
# 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.txt
das einfach funktioniert unter Windows nur . Wenn Sie cygwin
die 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_OPTS
property 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.