sbt
funziona in modo abbastanza standard rispetto al modo in cui sono normalmente configurati altri progetti basati su JVM.
sbt è infatti due "sottosistemi": il launcher e il core. Di solito xsbt.boot.Boot
viene eseguito prima che il core si avvii con le funzionalità che tutti conosciamo (e ad alcuni piacciono).
È quindi una questione di come si esegue sbt che dice come è possibile impostare un proxy per il traffico di rete HTTP, HTTPS e FTP.
Di seguito è riportato l'intero elenco delle proprietà disponibili che possono essere impostate per qualsiasi applicazione Java, sbt inclusa, che istruisce l'API Java a instradare la comunicazione attraverso un proxy:
- http_proxy
- http_proxy_user
- http_proxy_pass
- http.proxyHost
- http.proxyPort
- http.proxyUser
- http.proxyPassword
Sostituisci http
sopra con https
e ftp
per ottenere l'elenco delle proprietà per i servizi.
Alcuni sbt
script vengono utilizzati JAVA_OPTS
per configurare le impostazioni proxy con -Dhttp.proxyHost
e -Dhttp.proxyPort
tra gli altri (elencati sopra). Vedere Rete e proxy Java .
Alcuni script vengono forniti con il proprio modo di impostare la configurazione del proxy utilizzando la SBT_OPTS
proprietà .sbtopts
o (solo su Windows) %SBT_HOME%\conf\sbtconfig.txt
. È possibile utilizzarli per impostare specificamente sbt per utilizzare i proxy mentre le altre applicazioni basate su JVM non sono affatto interessate.
Dallo sbt
strumento della riga di comando:
# 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)
E qui arriva un estratto da 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.
Fate attenzione con sbtconfig.txt
che appena funziona su Windows solo . Quando utilizzi cygwin
il file non viene consultato e dovrai ricorrere ad altri approcci.
Sto usando sbt con il seguente script:
$JAVA_HOME/bin/java $SBT_OPTS -jar /Users/jacek/.ivy2/local/org.scala-sbt/sbt-launch/$SBT_LAUNCHER_VERSION-SNAPSHOT/jars/sbt-launch.jar "$@"
Lo scopo dello script è utilizzare l'ultima versione di sbt compilata dai sorgenti (ecco perché sto usando /Users/jacek/.ivy2/local/org.scala-sbt/sbt-launch/$SBT_LAUNCHER_VERSION-SNAPSHOT/jars/sbt-launch.jar
) con la $SBT_OPTS
proprietà come mezzo per passare le proprietà JVM agli usi sbt di JVM.
Lo script sopra mi consente di impostare il proxy sulla riga di comando su MacOS X come segue:
SBT_OPTS="-Dhttp.proxyHost=proxyhost -Dhttp.proxyPort=9999" sbt
Come puoi vedere, ci sono molti approcci per impostare il proxy per sbt che praticamente si riducono a impostare un proxy per gli usi di sbt di JVM.