Wie konfiguriere ich sbt für die Verwendung eines Proxys?
Zum Beispiel muss meine Builddefinition zu GitHub verbinden, Verbindungsparameter für die Angabe http.proxy
, http.proxyPort
,user
, und password
.
Wie würde ich diese Einstellungen an sbt übergeben?
Gibt es eine einfache Möglichkeit, zwischen Proxy- und No-Proxy-Einstellungen zu wechseln, wenn ich von zu Hause aus arbeite?
set JAVA_OPTS=-Dhttp.proxyHost=yourserver -Dhttp.proxyPort=8080 -Dhttp.proxyUser=username -Dhttp.proxyPassword=password
, damit dies funktioniert.-Dhttps.proxyHost
und-Dhttps.proxyPort
!sbt
funktioniert ziemlich normal im Vergleich zu anderen JVM-basierten Projekten, die normalerweise konfiguriert werden.sbt ist in der Tat zwei "Subsysteme" - der Launcher und der Kern. Es wird normalerweise
xsbt.boot.Boot
ausgeführt, bevor der Kern mit den Funktionen startet, die wir alle kennen (und manche sogar mögen).Es kommt daher darauf an, wie Sie sbt ausführen, und wie Sie einen Proxy für HTTP-, HTTPS- und FTP-Netzwerkverkehr einrichten können.
Im Folgenden finden Sie die gesamte Liste der verfügbaren Eigenschaften, die für jede Java-Anwendung festgelegt werden können, einschließlich sbt, die die Java-API anweist, die Kommunikation über einen Proxy weiterzuleiten:
Ersetzen Sie
http
oben durchhttps
undftp
, um die Liste der Eigenschaften für die Dienste zu erhalten.Einige
sbt
Skripte dienenJAVA_OPTS
zum Einrichten der Proxy-Einstellungen mit-Dhttp.proxyHost
und-Dhttp.proxyPort
unter den anderen (oben aufgeführt). Siehe Java Networking und Proxies .Einige Skripte verfügen über eine eigene Methode zum Einrichten der Proxy-Konfiguration mithilfe der
SBT_OPTS
Eigenschaft.sbtopts
oder (nur unter Windows)%SBT_HOME%\conf\sbtconfig.txt
. Sie können sie verwenden, um sbt speziell für die Verwendung von Proxys festzulegen, während die anderen JVM-basierten Anwendungen überhaupt nicht betroffen sind.Über das
sbt
Befehlszeilentool:Und hier kommt ein Auszug aus
sbt.bat
:Seien Sie vorsichtig mit ,
sbtconfig.txt
das einfach funktioniert unter Windows nur . Wenn Siecygwin
die Datei verwenden, wird sie nicht konsultiert, und Sie müssen auf die anderen Ansätze zurückgreifen.Ich verwende sbt mit dem folgenden Skript:
Der Zweck des Skripts besteht darin, die neueste Version von sbt zu verwenden, die aus den Quellen (aus diesem Grund verwende ich
/Users/jacek/.ivy2/local/org.scala-sbt/sbt-launch/$SBT_LAUNCHER_VERSION-SNAPSHOT/jars/sbt-launch.jar
) mit$SBT_OPTS
property erstellt wurde, um JVM-Eigenschaften an die von sbt verwendeten JVM-Eigenschaften zu übergeben.Mit dem obigen Skript kann ich den Proxy in der Befehlszeile unter MacOS X wie folgt festlegen:
Wie Sie sehen können, gibt es viele Ansätze zum Festlegen eines Proxys für sbt, die sich alle auf das Festlegen eines Proxys für die von sbt verwendeten JVM beschränken.
quelle
Fügen Sie in einer Windows-Umgebung einfach die folgende Zeile in die Datei sbt / sbtconfig.txt ein
oder das Https-Äquivalent (dank Kommentaren)
quelle
sbt/conf/sbtopts
stattdessen die Datei verwenden.sbt/conf/sbtopts
Datei zum Einstellen des Proxys?C:\Program Files (x86)\sbt\conf\sbtopts
offensichtlich unter Windows.sbtopts
Datei zu berührenIch habe verwendet (dies ist eine Unix-Umgebung):
Dies hat bei meinem Setup nicht funktioniert:
In der Datei sbt.sh:
Aber anscheinend wird SBT_OPTS anstelle von JAVA_OPTS verwendet
quelle
sbt.sh
Datei in mein Projekt einfügen soll!Geben Sie für Windows-Benutzer den folgenden Befehl ein:
quelle
code
set JAVA_OPTS = -Dhttp.proxySet = true -Dhttp.proxyHost = <Proxyserver> -Dhttp.proxyPort = <Port> -Dhttp.proxyUser = <Benutzername> - Dht tp.proxyPassword = <Passwort> -Dhttps.proxySet = true -Dhttps.proxyHost = <Proxyserver> -Dhttps.proxyPort = <Port> -Dhttps.proxyUser = <Benutzername> -Dhttp s.proxyPassword = <Passwort>code
So geben Sie eine Antwort, die für alle Windows-Benutzer funktioniert:
Fügen Sie Ihrer sbtconfig.txt Folgendes hinzu (C: \ Programme (x86) \ sbt \ conf)
Ersetzen Sie sowohl XXXXXXX durch Ihren proxyHost als auch JJJJ durch Ihren proxyPort.
Wenn die Fehlermeldung "Hauptklasse konnte nicht gefunden oder geladen werden" angezeigt wird, müssen Sie JAVA_HOME festlegen:
Verwenden Sie unter 64-Bit-Fenstern:
quelle
Fügen Sie sowohl die http- als auch die https-Konfiguration hinzu:
(https config ist ein Muss, da viele URLs, auf die von den sbt-Bibliotheken verwiesen wird, https sind.)
In der Tat, ich hatte sogar eine zusätzliche Einstellung
'http.proxySet'
zu'true'
in beiden Konfigurationseinträge.quelle
Beim Hinzufügen der Proxy-Informationen zu% JAVA_OPTS% wurde die Fehlermeldung "-Dhttp.proxyHost = Ihr Server war zu diesem Zeitpunkt unerwartet" angezeigt. Ich habe die Proxy-Informationen in% SBT_OPTS% eingegeben und es hat funktioniert.
quelle
Verwenden von
funktioniert in Ubuntu 15.10 x86_64 x86_64 GNU / Linux.
Ersetzen Sie Ihren Server durch die richtige Adresse ohne die Präfixe http: // oder https: // in Dhttp bzw. Dhttps. Denken Sie daran, die Anführungszeichen zu vermeiden. Kein usr / pass in der Codezeile enthalten, um dies einzuschließen, fügen Sie einfach -Dhttp.proxyUser = usr -Dhttp.proxyPassword = pass mit denselben Typisierungskriterien hinzu. Danke @Jacek Laskowski!. Prost
quelle
Ich fand einen Artikel im FAQ-Bereich von Lightbend Activator nützlich. Ich verwende Activator, das wiederum SBT verwendet. Ich bin mir also nicht sicher, ob dies Benutzern nur mit SBT hilft. Wenn Sie jedoch Activator wie ich verwenden und sich hinter einem Proxy befinden, befolgen Sie die Anweisungen im Abschnitt "Hinter einem Proxy" des FAQ:
https://www.lightbend.com/activator/docs
Nur für den Fall, dass der Inhalt verschwindet, hier ein Copy-Paste:
quelle
SBT verwendet sowohl HTTP / HTTPS / SFTP / SSH als auch andere Arten von Verbindungen zu einem Repository. Wenn Sie sich also hinter einem Proxy befinden, sollten diese Protokolle verfügbar sein.
In den meisten einfachen Fällen unter Windows müssen Sie nur Proxy-Parameteroptionen an JVM übergeben, z.
Das wird reichen.
Wenn nicht, sollten Sie sich einiger Dinge bewusst sein:
Um dies zuerst zu lösen, sollten Sie den https-Proxy-Parameter an jvm übergeben, wie:
Um die zweite zu lösen, sollten Sie die ca. importieren. Es gibt viele Tipps.
Um das dritte Problem zu lösen, können Sie möglicherweise einen Authentifizierungs-Proxy verwenden.
Um die Konfiguration von SBT zu vereinfachen, werden sbtconfig.txt und sbtops im Verzeichnis conf bereitgestellt.
Referenz:
http://www.scala-sbt.org/0.13/docs/Setup-Notes.html
http://www.scala-sbt.org/1.0/docs/Publishing.html
quelle
Unter Mac OS X / El Capitan können Sie Java-Umgebungsvariablen festlegen:
quelle
Ich habe festgestellt, dass ich durch Starten von IntelliJ IDEA vom Terminal aus eine Verbindung herstellen und über das Internet herunterladen kann. Geben Sie Folgendes ein, um vom Terminal aus zu starten:
$ idea
quelle
Wenn Sie einen Proxy verwenden, für den eine Authentifizierung erforderlich ist, habe ich eine Lösung für Sie :)
Wie oben von @Faiz erläutert, fällt es SBT sehr schwer, Proxys zu handhaben, für die eine Authentifizierung erforderlich ist. Die Lösung besteht darin, diese Authentifizierung zu umgehen, wenn Sie Ihren Proxy bei Bedarf nicht deaktivieren können (z. B. Unternehmens-Proxy). Ich schlage vor, dass Sie einen Squid-Proxy verwenden und ihn mit Ihrem Benutzernamen und Passwort konfigurieren, um auf Ihren Unternehmens-Proxy zuzugreifen. Siehe: https://doc.ubuntu-fr.org/squid Anschließend können Sie die Umgebungsvariablen JAVA_OPTS oder SBT_OPTS so festlegen, dass SBT anstelle Ihres Unternehmens-Proxys eine Verbindung zu Ihrem eigenen lokalen Squid-Proxy herstellt:
(c / c dies einfach in Ihrem bashrc ohne etwas zu ändern und es sollte gut funktionieren).
Der Trick besteht darin, dass Squid Proxy keine Authentifizierung erfordert und als Zwischenstufe zwischen SBT und Ihrem anderen Proxy fungiert.
Wenn Sie Probleme bei der Anwendung dieses Hinweises haben, lassen Sie es mich bitte wissen.
Grüße,
Edgar
quelle
Für diejenigen, die immer noch auf diesem Thread landen und versuchen herauszufinden, wo / wie der HTTP-Proxy in IntelliJ konfiguriert werden kann, habe ich es hier geschafft, ihn für mich zum Laufen zu bringen. Ich hoffe das hilft!
(Hinweis: Geben Sie Ihren Netzwerkbenutzernamen und Ihr Kennwort in den entsprechenden Feldern an.): -
quelle
Versuchen Sie, die Proxy-Details als Parameter anzugeben
Wenn das nicht funktioniert, versuchen Sie es mit JAVA_OPTS (keine Windows)
oder (Fenster)
Wenn nichts funktioniert, setzen Sie SBT_OPTS
(keine Fenster)
oder (Fenster)
quelle