88 votes

Comment utiliser sbt de derrière un proxy?

Comment configurer sbt pour utiliser un proxy?

Par exemple, ma définition de construction doit se connecter à GitHub, en spécifiant les paramètres de connexion pour http.proxy , http.proxyPort , user et password .

Comment pourrais-je passer dans ces paramètres à sbt?

Existe-t-il un moyen simple de basculer entre les paramètres proxy / sans proxy lorsque je travaille à domicile?

138voto

Faiz Points 8115

sbt respecte l'environnement habituel des variables pour les paramètres de proxy http:

export JAVA_OPTS="$JAVA_OPTS -Dhttp.proxyHost=yourserver -Dhttp.proxyPort=8080 -Dhttp.proxyUser=username -Dhttp.proxyPassword=password"

(C'est bien sûr, en supposant que Unix (Linix/OSX, etc). Sur windows, vous pourriez tout simplement la même variable d'environnement (%JAVA_OPTS%) comme d'habitude dans la façon dont Windows.)

Ensuite, exécutez sbt comme d'habitude:

sbt

La commutation entre les proxy/sans proxy doit être une question de mettre en place un petit script que vous pouvez 'slurp' à chaque fois que vous en avez besoin.

26voto

Jacek Laskowski Points 6668

sbt travaille dans un assez standard de façon à comparer à la façon dont les autres JVM projets sont généralement configurés.

sbt est en fait deux "sous-systèmes" - le lanceur et le noyau. Il est habituellement xsbt.boot.Boot qui est exécutée avant que l'âme commence avec les caractéristiques que nous connaissons tous (et certains même comme).

C'est donc une question de comment vous exécutez sbt qui dit comment vous pourriez mettre en place un proxy HTTP, HTTPS et FTP le trafic réseau.

Ce qui suit est l'ensemble de la liste des propriétés disponibles qui peuvent être définies pour n'importe quelle application Java, sbt y compris, que demander de l'API Java pour la route de la communication à travers un proxy:

  • http_proxy
  • http_proxy_user
  • http_proxy_pass
  • http.proxyHost
  • http.proxyPort
  • http.proxyUser
  • http.proxyPassword

Remplacer http - dessus avec https et ftp pour obtenir la liste des propriétés pour les services.

Quelques - sbt scripts JAVA_OPTS pour configurer les paramètres de proxy avec -Dhttp.proxyHost et -Dhttp.proxyPort parmi les autres (voir la liste ci-dessus). Voir Java de Réseautage et des Procurations.

Certains scripts sont fournis avec leur propre façon de mettre en place la configuration du proxy à l'aide de l' SBT_OPTS de la propriété, .sbtopts ou (uniquement sur Windows) %SBT_HOME%\conf\sbtconfig.txt. Vous pouvez les utiliser à définir spécifiquement le sbt pour utiliser des proxys, tandis que l'autre JVM-based applications ne sont pas touchées.

De la 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 l' 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 l' sbtconfig.txt qui fonctionne sur Windows uniquement. Lorsque vous utilisez cygwin le fichier n'est pas consulté et vous devrez recourir à l'utilisation d'autres approches.

Je suis l'aide de 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 point du script est d'utiliser la dernière version de sbt construit à partir des sources (c'est pourquoi je suis à l'aide d' /Users/jacek/.ivy2/local/org.scala-sbt/sbt-launch/$SBT_LAUNCHER_VERSION-SNAPSHOT/jars/sbt-launch.jar) avec $SBT_OPTS de la propriété comme un moyen de transmettre les propriétés JVM la JVM sbt utilise.

Le script ci-dessus me permet de configurer le proxy sur la ligne de commande sous mac os X comme suit:

SBT_OPTS="-Dhttp.proxyHost=proxyhost -Dhttp.proxyPort=9999" sbt

Comme vous pouvez le voir, il existe de nombreuses méthodes pour configurer le proxy pour sbt que à peu près tous d'ébullition bas pour régler un proxy pour la JVM sbt utilise.

14voto

Enis Points 36

Dans l'environnement Windows, ajoutez simplement la ligne suivante dans le fichier sbt / sbtconfig.txt

-Dhttp.proxyHost = PROXYHOST -Dhttp.proxyPort = PROXYPORT-Dhttp.proxyUser = NOM D'UTILISATEUR -Dhttp.proxyPassword = XXXX

12voto

blue-sky Points 7469

J'ai utilisé (c'est un environnement unix):

 export SBT_OPTS="$SBT_OPTS -Dhttp.proxyHost=myproxy-Dhttp.proxyPort=myport"
 

Cela n'a pas fonctionné pour ma configuration:

 export JAVA_OPTS="$JAVA_OPTS -Dhttp.proxyHost=myproxy-Dhttp.proxyPort=myport"
 

Dans le fichier sbt.sh:

 JAVA_OPTS          environment variable, if unset uses "$java_opts"
SBT_OPTS           environment variable, if unset uses "$default_sbt_opts"
 

Mais apparemment, SBT_OPTS est utilisé à la place de JAVA_OPTS

9voto

rphonika Points 91

Pour les utilisateurs Windows, entrez la commande suivante:

 set JAVA_OPTS=-Dhttp.proxySet=true -Dhttp.proxyHost=[Your Proxy server] -Dhttp.proxyPort=8080
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X