sbt
fonctionne de manière assez standard par rapport à la façon dont les autres projets basés sur JVM sont généralement configurés.
sbt est en fait deux "sous-systèmes" - le lanceur et le noyau. C'est généralement xsbt.boot.Boot
qui est exécuté avant que le noyau ne démarre avec les fonctionnalités que nous connaissons tous (et même que certaines aiment).
Il s'agit donc de savoir comment vous exécutez sbt qui indique comment configurer un proxy pour le trafic réseau HTTP, HTTPS et FTP.
Voici la liste complète des propriétés disponibles qui peuvent être définies pour toute application Java, y compris sbt, qui indiquent à l'API Java d'acheminer la communication via un proxy:
- http proxy
- http_proxy_user
- http_proxy_pass
- http.proxyHost
- http.proxyPort
- http.proxyUser
- http.proxyPassword
Remplacez http
ci-dessus par https
et ftp
pour obtenir la liste des propriétés des services.
Certains sbt
scripts utilisent JAVA_OPTS
pour configurer les paramètres de proxy avec -Dhttp.proxyHost
et -Dhttp.proxyPort
parmi les autres (répertoriés ci-dessus). Voir Mise en réseau Java et proxies .
Certains scripts ont leur propre façon de configurer la configuration du proxy à l'aide de la SBT_OPTS
propriété, .sbtopts
ou (uniquement sous Windows) %SBT_HOME%\conf\sbtconfig.txt
. Vous pouvez les utiliser pour définir spécifiquement sbt pour utiliser des proxys alors que les autres applications basées sur JVM ne sont pas du tout affectées.
Depuis l' sbt
outil de ligne de commande:
# 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)
Et voici un extrait de 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.
Soyez prudent avec sbtconfig.txt
ce que seulement fonctionne sur Windows uniquement . Lorsque vous utilisez cygwin
le fichier n'est pas consulté et vous devrez recourir aux autres approches.
J'utilise sbt avec le script suivant:
$JAVA_HOME/bin/java $SBT_OPTS -jar /Users/jacek/.ivy2/local/org.scala-sbt/sbt-launch/$SBT_LAUNCHER_VERSION-SNAPSHOT/jars/sbt-launch.jar "$@"
Le but du script est d'utiliser la dernière version de sbt construite à partir des sources (c'est pourquoi j'utilise /Users/jacek/.ivy2/local/org.scala-sbt/sbt-launch/$SBT_LAUNCHER_VERSION-SNAPSHOT/jars/sbt-launch.jar
) avec la $SBT_OPTS
propriété comme moyen de transmettre les propriétés JVM aux utilisations de la JVM sbt.
Le script ci-dessus me permet de définir le proxy sur la ligne de commande sous MacOS X comme suit:
SBT_OPTS="-Dhttp.proxyHost=proxyhost -Dhttp.proxyPort=9999" sbt
Comme vous pouvez le voir, il existe de nombreuses approches pour définir un proxy pour sbt qui se résument toutes à définir un proxy pour les utilisations de la JVM sbt.