sbt
przestrzega zwykłych zmiennych środowiskowych dla ustawień proxy http:
export JAVA_OPTS="$JAVA_OPTS -Dhttp.proxyHost=yourserver -Dhttp.proxyPort=8080 -Dhttp.proxyUser=username -Dhttp.proxyPassword=password"
( Oczywiście przy założeniu, że Unix (Linux / OSX itp.). W systemie Windows można po prostu ustawić tę samą zmienną środowiskową ( %JAVA_OPTS%
) jak zwykle w systemie Windows ).
Następnie uruchom sbt
jak zwykle:
sbt
Przełączanie się między proxy / no-proxy powinno być kwestią skonfigurowania małego skryptu, który możesz `` siorbać '', kiedy tylko tego potrzebujesz.
Gotchas
- Nie dodawaj „http: //” do
yourserver
wartości
- Nie dołączaj portu do
yourserver
wartości
- Prawdopodobnie chcesz również dołączyć,
https.proxyHost
a https.proxyPort
ponieważ wiele rzeczy działa przez https
- Jeśli Twój serwer proxy wymaga uwierzytelnienia, nawet nie próbuj, chyba że używa tylko podstawowego uwierzytelniania, ponieważ SBT nie obsługuje niczego innego. Zawsze uważaj na wyczyszczenie danych uwierzytelniających w zmiennych środowiskowych! Pamiętaj, aby usunąć polecenia z .bash_history za pomocą metody edycji tekstu, która nie utworzy plików śledzenia (technicznie powinieneś
shred
lub srm
cały plik). Jeśli korzystasz z systemu Windows, nie martw się o to, Twoje zabezpieczenia są już zepsute, nie możesz już więcej zaszkodzić.
set JAVA_OPTS=-Dhttp.proxyHost=yourserver -Dhttp.proxyPort=8080 -Dhttp.proxyUser=username -Dhttp.proxyPassword=password
aby to zadziałało.-Dhttps.proxyHost
i-Dhttps.proxyPort
!sbt
działa w dość standardowy sposób w porównaniu ze sposobem, w jaki zwykle konfigurowane są inne projekty oparte na JVM.sbt to w rzeczywistości dwa „podsystemy” - wyrzutnia i rdzeń. To jest zazwyczaj
xsbt.boot.Boot
jest to wykonywane przed uruchomieniem jądra z funkcjami, które wszyscy znamy (a niektórzy nawet lubią).Dlatego jest to kwestia sposobu wykonania sbt, który mówi, jak skonfigurować proxy dla ruchu sieciowego HTTP, HTTPS i FTP.
Poniżej znajduje się cała lista dostępnych właściwości, które można ustawić dla dowolnej aplikacji Java, w tym sbt, które instruują interfejs Java API, aby kierował komunikację przez serwer proxy:
Zamień
http
powyżej nahttps
i,ftp
aby uzyskać listę właściwości usług.Niektóre
sbt
skrypty służąJAVA_OPTS
do konfigurowania ustawień proxy za pomocą-Dhttp.proxyHost
i-Dhttp.proxyPort
między innymi (wymienione powyżej). Zobacz Sieć Java i serwery proxy .Niektóre skrypty mają własny sposób konfigurowania konfiguracji proxy za pomocą
SBT_OPTS
właściwości.sbtopts
lub (tylko w systemie Windows)%SBT_HOME%\conf\sbtconfig.txt
. Można ich użyć, aby specjalnie ustawić sbt do korzystania z serwerów proxy, podczas gdy inne aplikacje oparte na JVM nie mają żadnego wpływu.Z
sbt
narzędzia wiersza poleceń:A oto fragment z
sbt.bat
:Bądź ostrożny
sbtconfig.txt
, że tylko działa na Windows tylko . Kiedy używaszcygwin
pliku, nie jest konsultowany i będziesz musiał skorzystać z innych podejść.Używam sbt z następującym skryptem:
Celem skryptu jest użycie najnowszej wersji sbt zbudowanej ze źródeł (dlatego używam
/Users/jacek/.ivy2/local/org.scala-sbt/sbt-launch/$SBT_LAUNCHER_VERSION-SNAPSHOT/jars/sbt-launch.jar
) z$SBT_OPTS
właściwością jako sposobem przekazywania właściwości JVM do JVM, których używa sbt.Powyższy skrypt pozwala mi ustawić proxy w wierszu poleceń na MacOS X w następujący sposób:
Jak widać, istnieje wiele podejść do ustawiania proxy dla sbt, z których wszystko sprowadza się do ustawienia proxy dla używanej przez JVM maszyny sbt.
źródło
W środowisku Windows po prostu dodaj następujący wiersz w sbt / sbtconfig.txt
lub odpowiednik Https (dzięki komentarzom)
źródło
sbt/conf/sbtopts
pliku.sbt/conf/sbtopts
plik do ustawienia proxy?C:\Program Files (x86)\sbt\conf\sbtopts
oczywiście pod - w systemie Windows.sbtopts
plikuUżyłem (to jest środowisko unixowe):
To nie zadziałało w mojej konfiguracji:
W pliku sbt.sh:
Ale najwyraźniej SBT_OPTS jest używany zamiast JAVA_OPTS
źródło
sbt.sh
plik w moim projekcie!W przypadku użytkowników systemu Windows wprowadź następujące polecenie:
źródło
code
set JAVA_OPTS = -Dhttp.proxySet = true -Dhttp.proxyHost = <Serwer proxy> -Dhttp.proxyPort = <Port> -Dhttp.proxyUser = <Username> - Dht tp.proxyPassword = <hasło> -Dhttps.proxySet = true -Dhttps.proxyHost = <Serwer proxy> -Dhttps.proxyPort = <Port> -Dhttps.proxyUser = <nazwa użytkownika> -Dhttp s.proxyHost = <hasło>code
Aby udzielić jednej odpowiedzi, która będzie działać dla wszystkich użytkowników systemu Windows:
Dodaj następujące elementy do pliku sbtconfig.txt (C: \ Program Files (x86) \ sbt \ conf)
Zastąp oba XXXXXXX swoim proxyHost, a oba YYYY swoim proxyPort.
Jeśli pojawi się błąd „Nie można znaleźć lub załadować głównej klasy”, musisz ustawić JAVA_HOME:
W przypadku 64-bitowych okien użyj:
źródło
Dodaj konfigurację http i https:
(konfiguracja https jest konieczna, ponieważ wiele adresów URL odwoływanych przez biblioteki SBT to https)
W rzeczywistości, nawet dodatkowy ustawienie
'http.proxySet'
do'true'
obu wpisów konfiguracyjnych.źródło
Kiedy dodałem informacje o serwerze proxy do% JAVA_OPTS%, pojawił się błąd „-Dhttp.proxyHost = Twój serwer był w tym czasie nieoczekiwany”. Umieściłem informacje o serwerze proxy w% SBT_OPTS% i zadziałało.
źródło
Za pomocą
działa w Ubuntu 15.10 x86_64 x86_64 GNU / Linux.
Zastąp yourServer odpowiednim adresem bez prefiksów http: // ani https: // odpowiednio w językach Dhttp i Dhttps. Pamiętaj, aby unikać cudzysłowów. Żadne usr / pass nie jest zawarte w linii kodu, wystarczy dodać -Dhttp.proxyUser = usr -Dhttp.proxyPassword = pass z tymi samymi kryteriami typowania. Dzięki @Jacek Laskowski !. Twoje zdrowie
źródło
Znalazłem przydatny element w sekcji FAQ w Lightbend Activator. Używam Activatora, który z kolei używa SBT, więc nie jestem pewien, czy to pomaga użytkownikom tylko z SBT, ale jeśli używasz Activator, tak jak ja, i jesteś za proxy, postępuj zgodnie z instrukcjami w sekcji „Behind A Proxy” w FAQ:
https://www.lightbend.com/activator/docs
Na wypadek gdyby treść zniknęła, oto kopia i wklej:
źródło
SBT używają zarówno HTTP / HTTPS / SFTP / SSH, jak i innego rodzaju połączeń z repozytorium. więc kiedy za proxy, te protokoły powinny być dostępne.
W większości prostych przypadków w systemie Windows wystarczy przekazać JVM opcje parametrów proxy, takie jak:
To wystarczy.
Ale jeśli nie, jest kilka rzeczy, o których powinieneś wiedzieć:
aby rozwiązać najpierw, należy przekazać parametr proxy https do jvm, na przykład:
aby rozwiązać drugi, należy zaimportować ok. wskazówek jest wiele.
aby rozwiązać trzeci, być może warto rozważyć użycie proxy uwierzytelniania.
aby uprościć konfigurację SBT, dostarcza sbtconfig.txt i sbtops w katalogu conf, zajrzyj do tego.
Źródła:
http://www.scala-sbt.org/0.13/docs/Setup-Notes.html
http://www.scala-sbt.org/1.0/docs/Publishing.html
źródło
W systemie Mac OS X / El Capitan możesz ustawić zmienne środowiskowe Java:
źródło
Odkryłem, że uruchomienie IntelliJ IDEA z poziomu terminala pozwoliło mi połączyć się i pobrać przez Internet. Aby rozpocząć od terminala, wpisz:
$ idea
źródło
Jeśli korzystasz z Proxy, które wymaga uwierzytelnienia, mam dla Ciebie rozwiązanie :)
Jak wyjaśnił @Faiz powyżej, SBT bardzo ciężko radzi sobie z serwerem proxy wymagającym uwierzytelnienia. Rozwiązaniem jest ominięcie tego uwierzytelniania, jeśli nie możesz wyłączyć serwera proxy na żądanie (na przykład korporacyjny serwer proxy). Aby to zrobić, sugeruję użycie serwera proxy squid i skonfigurowanie go przy użyciu nazwy użytkownika i hasła, aby uzyskać dostęp do korporacyjnego serwera proxy. Zobacz: https://doc.ubuntu-fr.org/squid Następnie możesz ustawić zmienne środowiskowe JAVA_OPTS lub SBT_OPTS tak, aby SBT łączyło się z Twoim lokalnym proxy squid zamiast z korporacyjnym proxy:
(po prostu c / c to w swoim bashrc bez modyfikowania czegokolwiek i powinno działać dobrze).
Sztuczka polega na tym, że Squid Proxy nie wymaga żadnego uwierzytelnienia i działa jako pośrednik między SBT a innym serwerem proxy.
Jeśli masz kłopoty ze stosowaniem tej rady, daj mi znać.
Pozdrowienia,
Edgar
źródło
Dla tych, którzy wciąż lądują w tym wątku, próbując znaleźć, gdzie / jak skonfigurować serwer proxy HTTP w IntelliJ, oto jak udało mi się go uruchomić. Mam nadzieję, że to pomoże!
(Uwaga: w odpowiednich polach podaj swoją nazwę użytkownika i hasło sieciowe): -
źródło
Spróbuj podać szczegóły serwera proxy jako parametry
Jeśli to nie działa, spróbuj z JAVA_OPTS (bez systemu Windows)
lub (Windows)
jeśli nic nie działa, ustaw SBT_OPTS
(bez okien)
lub (Windows)
źródło