sbt
funciona de una manera bastante estándar en comparación con la forma en que normalmente se configuran otros proyectos basados en JVM.
sbt es de hecho dos "subsistemas": el lanzador y el núcleo. Por lo general, xsbt.boot.Boot
se ejecuta antes de que se inicie el núcleo con las funciones que todos conocemos (y algunas incluso nos gustan).
Por lo tanto, es una cuestión de cómo ejecutar sbt que dice cómo podría configurar un proxy para el tráfico de red HTTP, HTTPS y FTP.
La siguiente es la lista completa de las propiedades disponibles que se pueden configurar para cualquier aplicación Java, incluido SBT, que instruye a la API de Java para enrutar la comunicación a través de un proxy:
- http_proxy
- http_proxy_user
- http_proxy_pass
- http.proxyHost
- http.proxyPort
- http.proxyUser
- http.proxyPassword
Reemplace http
arriba con https
y ftp
para obtener la lista de propiedades de los servicios.
Algunas sbt
secuencias de comandos se utilizan JAVA_OPTS
para configurar la configuración del proxy con -Dhttp.proxyHost
y -Dhttp.proxyPort
entre los demás (enumerados anteriormente). Consulte Proxies y redes de Java .
Algunos scripts vienen con su propia forma de configurar la configuración del proxy utilizando la SBT_OPTS
propiedad .sbtopts
o (solo en Windows) %SBT_HOME%\conf\sbtconfig.txt
. Puede usarlos para configurar sbt específicamente para usar proxies mientras que las otras aplicaciones basadas en JVM no se ven afectadas en absoluto.
Desde la sbt
herramienta de línea de 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)
Y aquí viene un extracto 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.
Tenga cuidado con el sbtconfig.txt
que funciona en Windows solamente . Cuando utilizas cygwin
el archivo no se consulta y tendrás que recurrir a utilizar los otros enfoques.
Estoy usando sbt con el siguiente 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 "$@"
El objetivo del script es usar la última versión de sbt construida a partir de las fuentes (por eso estoy usando /Users/jacek/.ivy2/local/org.scala-sbt/sbt-launch/$SBT_LAUNCHER_VERSION-SNAPSHOT/jars/sbt-launch.jar
) con $SBT_OPTS
property como un medio para pasar las propiedades de JVM a los usos de JVM sbt.
El script anterior me permite configurar el proxy en la línea de comandos en MacOS X de la siguiente manera:
SBT_OPTS="-Dhttp.proxyHost=proxyhost -Dhttp.proxyPort=9999" sbt
Como puede ver, hay muchos enfoques para configurar el proxy para sbt que básicamente se reducen a configurar un proxy para los usos de JVM sbt.