sbt
respecte les variables d'environnement habituelles pour les paramètres du 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 Unix (Linux / OSX, etc.). Sous Windows, vous pouvez simplement définir la même variable d'environnement ( %JAVA_OPTS%
) comme d'habitude à la manière de Windows. )
Puis exécutez sbt
comme d'habitude:
sbt
Le basculement entre proxy / non-proxy devrait être une question de mise en place d'un petit script dans lequel vous pouvez «glisser» chaque fois que vous en avez besoin.
Gotchas
- N'incluez pas "http: //" dans la
yourserver
valeur
- N'incluez pas le port dans la
yourserver
valeur
- Vous voulez probablement aussi inclure
https.proxyHost
et https.proxyPort
comme beaucoup de choses fonctionnent sur https
- Si votre proxy nécessite une authentification, ne prenez même pas la peine d'essayer sauf s'il utilise simplement l'authentification de base car SBT ne prend en charge rien d'autre. Méfiez-vous également toujours des informations d'identification claires dans les variables d'environnement! Assurez-vous de supprimer les commandes de votre .bash_history en utilisant une méthode d'édition de texte qui ne créera pas de fichiers de trace (techniquement, vous devriez
shred
ou srm
le fichier entier). Si vous êtes sous Windows, ne vous inquiétez pas, votre sécurité est déjà en panne, vous ne pouvez plus nuire.
set JAVA_OPTS=-Dhttp.proxyHost=yourserver -Dhttp.proxyPort=8080 -Dhttp.proxyUser=username -Dhttp.proxyPassword=password
pour que cela fonctionne.-Dhttps.proxyHost
et-Dhttps.proxyPort
!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:
Remplacez
http
ci-dessus parhttps
etftp
pour obtenir la liste des propriétés des services.Certains
sbt
scripts utilisentJAVA_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:Et voici un extrait de
sbt.bat
:Soyez prudent avec
sbtconfig.txt
ce que seulement fonctionne sur Windows uniquement . Lorsque vous utilisezcygwin
le fichier n'est pas consulté et vous devrez recourir aux autres approches.J'utilise sbt avec le script suivant:
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:
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.
la source
Dans l'environnement Windows, ajoutez simplement la ligne suivante dans le fichier sbt / sbtconfig.txt
ou l'équivalent Https (grâce aux commentaires)
la source
sbt/conf/sbtopts
fichier à la place.sbt/conf/sbtopts
fichier pour définir le proxy?C:\Program Files (x86)\sbt\conf\sbtopts
- sous Windows évidemment.sbtopts
fichierJ'ai utilisé (c'est un environnement unix):
Cela n'a pas fonctionné pour ma configuration:
Dans le fichier sbt.sh:
Mais apparemment, SBT_OPTS est utilisé à la place de JAVA_OPTS
la source
sbt.sh
fichier dans mon projet!Pour les utilisateurs Windows, entrez la commande suivante:
la source
code
set JAVA_OPTS = -Dhttp.proxySet = true -Dhttp.proxyHost = <Proxy Server> -Dhttp.proxyPort = <Port> -Dhttp.proxyUser = <Username> - Dht tp.proxyPassword = <Password> -Dhttps.proxySet = true -Dhttps.proxyHost = <Proxy Server> -Dhttps.proxyPort = <Port> -Dhttps.proxyUser = <Username> -Dhttp s.proxyPassword = <Password>code
Pour fournir une réponse qui fonctionnera pour tous les utilisateurs de Windows:
Ajoutez ce qui suit à votre sbtconfig.txt (C: \ Program Files (x86) \ sbt \ conf)
Remplacez à la fois XXXXXXX par votre proxyHost et les deux YYYY par votre proxyPort.
Si vous obtenez l'erreur "Impossible de trouver ou de charger la classe principale", vous devez définir votre JAVA_HOME:
Sous Windows 64 bits, utilisez:
la source
Ajoutez à la fois la configuration http et https:
(La configuration https est indispensable, car de nombreuses URL référencées par les bibliothèques sbt sont https)
En fait, j'ai même eu un cadre supplémentaire
'http.proxySet'
pour'true'
dans les deux entrées de configuration.la source
Quand j'ai ajouté les informations de proxy au% JAVA_OPTS%, j'ai eu une erreur "-Dhttp.proxyHost = votre serveur était inattendu à ce moment". J'ai mis les informations de proxy dans% SBT_OPTS% et cela a fonctionné.
la source
En utilisant
fonctionne sous Ubuntu 15.10 x86_64 x86_64 GNU / Linux.
Remplacez votre serveur par la bonne adresse sans les préfixes http: // ni https: // dans Dhttp et Dhttps, respectivement. N'oubliez pas d'éviter les guillemets. Aucun usr / pass inclus dans la ligne de code, pour inclure cela, ajoutez simplement -Dhttp.proxyUser = usr -Dhttp.proxyPassword = pass avec les mêmes critères de saisie. Merci @Jacek Laskowski !. À votre santé
la source
J'ai trouvé un élément utile dans la section FAQ de Lightbend Activator. J'utilise Activator, qui à son tour utilise SBT, donc je ne sais pas si cela aide les utilisateurs uniquement avec SBT, mais si vous utilisez Activator, comme moi, et que vous êtes derrière un proxy, suivez les instructions de la section "Derrière un proxy" du FAQ:
https://www.lightbend.com/activator/docs
Juste au cas où le contenu disparaîtrait, voici un copier-coller:
la source
SBT utilise à la fois HTTP / HTTPS / SFTP / SSH et d'autres types de connexions à un référentiel. donc quand derrière un proxy, ces protocoles devraient être disponibles.
Dans la plupart des cas simples sous Windows, il vous suffit de transmettre les options de paramètres proxy à la JVM, comme:
Cela fera l'affaire.
Mais sinon, il y a peu de choses dont vous devez être conscient:
pour résoudre d'abord, vous devez passer le paramètre proxy https à jvm, comme:
pour résoudre le second, vous devez importer le fichier ca. il y a beaucoup de conseils.
pour résoudre le troisième, vous pourriez peut-être envisager d'utiliser un proxy d'authentification.
pour simplifier la configuration de SBT, il fournit sbtconfig.txt et sbtops dans le répertoire conf, regardez-le.
Référence:
http://www.scala-sbt.org/0.13/docs/Setup-Notes.html
http://www.scala-sbt.org/1.0/docs/Publishing.html
la source
Sous Mac OS X / El Capitan, vous pouvez définir des variables d'environnement Java:
la source
J'ai trouvé que démarrer IntelliJ IDEA à partir du terminal me permettait de me connecter et de télécharger sur Internet. Pour démarrer à partir du terminal, saisissez:
$ idea
la source
Si vous utilisez un proxy qui nécessite une authentification, j'ai une solution pour vous :)
Comme @Faiz l'a expliqué ci-dessus, SBT a beaucoup de mal à gérer le proxy nécessitant une authentification. La solution est de contourner cette authentification, si vous ne pouvez pas désactiver votre proxy à la demande (proxy d'entreprise par exemple). Pour ce faire, je vous suggère d'utiliser un proxy squid et de le configurer avec votre nom d'utilisateur et votre mot de passe pour accéder à votre proxy d'entreprise. Voir: https://doc.ubuntu-fr.org/squid Ensuite, vous pouvez définir les variables d'environnement JAVA_OPTS ou SBT_OPTS afin que SBT se connecte à votre propre proxy squid local au lieu de votre proxy d'entreprise:
(il suffit de c / c ceci dans votre bashrc sans rien modifier et cela devrait fonctionner correctement).
L'astuce est que Squid Proxy ne nécessite aucune authentification et agit comme intermédiaire entre SBT et votre autre proxy.
Si vous rencontrez des difficultés lors de l’application de ces conseils, veuillez me le faire savoir.
Cordialement,
Edgar
la source
Pour ceux qui atterrissent toujours sur ce fil essayant de trouver où / comment configurer le proxy HTTP dans IntelliJ, voici comment j'ai réussi à le faire fonctionner pour moi. J'espère que ça aide!
(Remarque: indiquez votre nom d'utilisateur et votre mot de passe réseau dans les cases correspondantes): -
la source
Essayez de fournir les détails du proxy en tant que paramètres
Si cela ne fonctionne pas, essayez avec JAVA_OPTS (non Windows)
ou (windows)
si rien ne fonctionne, définissez SBT_OPTS
(non windows)
ou (windows)
la source