sbt
funciona de uma maneira razoavelmente padrão em comparação com a maneira como outros projetos baseados em JVM são normalmente configurados.
sbt é, na verdade, dois "subsistemas" - o iniciador e o núcleo. Geralmente xsbt.boot.Boot
é executado antes do núcleo inicializar com os recursos que todos nós conhecemos (e alguns até gostam).
Portanto, é uma questão de como você executa o sbt que diz como você pode configurar um proxy para o tráfego de rede HTTP, HTTPS e FTP.
A seguir está a lista completa das propriedades disponíveis que podem ser definidas para qualquer aplicativo Java, incluindo sbt, que instruem a API Java a rotear a comunicação por meio de um proxy:
- proxy HTTP
- http_proxy_user
- http_proxy_pass
- http.proxyHost
- http.proxyPort
- http.proxyUser
- http.proxyPassword
Substitua http
acima por https
e ftp
para obter a lista das propriedades dos serviços.
Alguns sbt
scripts são usados JAVA_OPTS
para definir as configurações de proxy com -Dhttp.proxyHost
e -Dhttp.proxyPort
entre os outros (listados acima). Consulte Rede Java e proxies .
Alguns scripts vêm com sua própria maneira de definir a configuração do proxy usando a SBT_OPTS
propriedade .sbtopts
ou (somente no Windows)%SBT_HOME%\conf\sbtconfig.txt
. Você pode usá-los para definir especificamente o sbt para usar proxies, enquanto os outros aplicativos baseados em JVM não são afetados.
Na sbt
ferramenta de linha 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)
E aqui vem um trecho 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.
Tenha cuidado com sbtconfig.txt
que apenas funciona no Windows única . Quando você usa cygwin
o arquivo não é consultado e você terá que recorrer ao uso de outras abordagens.
Estou usando sbt com o seguinte 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 "$@"
O objetivo do script é usar a versão mais recente do sbt construída a partir das fontes (é por isso que estou usando /Users/jacek/.ivy2/local/org.scala-sbt/sbt-launch/$SBT_LAUNCHER_VERSION-SNAPSHOT/jars/sbt-launch.jar
) com $SBT_OPTS
propriedade como um meio de passar propriedades JVM para os usos de JVM sbt.
O script acima me permite definir o proxy na linha de comando no MacOS X da seguinte maneira:
SBT_OPTS="-Dhttp.proxyHost=proxyhost -Dhttp.proxyPort=9999" sbt
Como você pode ver, existem muitas abordagens para definir o proxy para sbt que praticamente se resumem a definir um proxy para o uso do JVM sbt.