Jak mam skonfigurować ustawienia proxy, aby Eclipse mogło pobierać nowe wtyczki?

178

Pracuję z Eclipse 3.7 w środowisku Windows XP za internetowym proxy.

Chcę zainstalować wtyczkę Groovy na nowo rozpakowanym Eclipse Indigo ( Eclipse Java EE Indigo M4 ). Dodałem aktualizację do Available Software Sitelisty.

Ale Eclipse nie jest w stanie pobrać informacji o tej wtyczce, więc instalacja nie jest możliwa ...

Jeśli wstawię Nativekonfigurację General > Network Connections, która nie ma Authwybranej opcji, przy próbie dostępu do witryny aktualizacji pojawia się następujący błąd:

HTTP Proxy Authentication Required: http://dist.codehaus.org/groovy/distributions/greclipse/snapshot/e3.7/content.xml
HTTP Proxy Authentication Required: http://dist.codehaus.org/groovy/distributions/greclipse/snapshot/e3.7/content.xml
Proxy Authentication Required

Więc teraz wybieram manual, definiuję wszystkie poprawne informacje dla trzech schematów (HTTP, HTTPS, SOCKS): proxy, port, autoryzacja, użytkownik i hasło. Jednak kiedy próbuję wejść na stronę z aktualizacjami, Eclipse wskazuje, że tak Fetching children of Groovy Eclipse, ale utrzymuj ten status na 0% ...

Dziwne jest to, że nawet jeśli podam błędne hasło w General > Network Connectionskonfiguracji, nie otrzymuję żadnego komunikatu o błędzie.

Moje pytania:

  • Co jest nie tak w mojej konfiguracji?
  • Czy istnieje inny sposób zdefiniowania konfiguracji proxy?
  • Czy jest sposób, aby uzyskać więcej informacji, dowiedzieć się, co próbuje zrobić Eclipse ( workspace/.metadata/.lognie zawiera żadnych przydatnych informacji)?

Innym problemem (jednak niewielkim) jest to, że modyfikacje ustawień proxy wydają się być obsługiwane dopiero po ponownym uruchomieniu Eclipse.


ps1: Korzystając z przeglądarki, mogę uzyskać dostęp do witryny aktualizacji, więc nie jest ona blokowana przez serwer proxy.

ps2: Ten problem nie jest związany z tą wtyczką, ponieważ Eclipse zachowuje się tak samo w przypadku innych wtyczek.

ps3: Oto treść, workspace/.metadata/.logkiedy uruchamiam Eclipse i próbuję zainstalować wtyczkę (wszystkie te dzienniki są zapisywane podczas uruchamiania, żadne, gdy Eclipse próbuje uzyskać dostęp do witryny aktualizacji)

!SESSION 2011-05-02 10:38:58.681 -----------------------------------------------
eclipse.buildId=I20101208-1300
java.version=1.6.0_20
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=fr_FR
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.jee.product

!ENTRY org.eclipse.core.net 1 0 2011-05-02 10:39:02.228
!MESSAGE System property http.proxyHost is not set but should be XXX.

!ENTRY org.eclipse.core.net 1 0 2011-05-02 10:39:02.228
!MESSAGE System property http.proxyPort is not set but should be 8080.

!ENTRY org.eclipse.core.net 1 0 2011-05-02 10:39:02.244
!MESSAGE System property https.proxyHost is not set but should be XXX.

!ENTRY org.eclipse.core.net 1 0 2011-05-02 10:39:02.244
!MESSAGE System property https.proxyPort is not set but should be 8080.

!ENTRY org.eclipse.core.net 1 0 2011-05-02 10:39:02.244
!MESSAGE System property socksProxyHost is not set but should be XXX.

!ENTRY org.eclipse.core.net 1 0 2011-05-02 10:39:02.244
!MESSAGE System property socksProxyPort is not set but should be 8080.

!ENTRY org.eclipse.core.net 1 0 2011-05-02 10:39:02.244
!MESSAGE System property https.proxyHost is not set but should be XXX.

!ENTRY org.eclipse.core.net 1 0 2011-05-02 10:39:02.244
!MESSAGE System property https.proxyPort is not set but should be 8080.

!ENTRY org.eclipse.core.net 1 0 2011-05-02 10:39:02.244
!MESSAGE System property socksProxyHost is not set but should be XXX.

!ENTRY org.eclipse.core.net 1 0 2011-05-02 10:39:02.244
!MESSAGE System property socksProxyPort is not set but should be 8080.

!ENTRY org.eclipse.core.net 1 0 2011-05-02 10:39:02.244
!MESSAGE System property socksProxyHost is not set but should be XXX.

!ENTRY org.eclipse.core.net 1 0 2011-05-02 10:39:02.244
!MESSAGE System property socksProxyPort is not set but should be 8080.

!ENTRY org.eclipse.osgi 2 1 2011-05-02 10:39:02.447
!MESSAGE NLS missing message: TaskJobFactory_Refreshing_repository_configuration in: org.eclipse.mylyn.internal.tasks.ui.messages

Edytować

Jeśli dodam następujące wiersze w moim eclipse.inipliku ( z tego powodu ), działa:

-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclient
-Dhttp.proxyPort=8080
-Dhttp.proxyHost=XXX
-Dhttp.proxyUser=XXX
-Dhttp.proxyPassword=XXX
-Dhttp.nonProxyHosts=localhost|127.0.0.1

Ale dlaczego? Czy ten problem nadal występuje w Eclipse 3.7?

Romain Linsolas
źródło
mam podobne pytanie: jak zainstalować aktualizację eclipse z serwera proxy (lub pamięci podręcznej) w systemie Ubuntu? czy powinienem o to zapytać na serwerze Ubuntu? thx
Enrique San Martín
3
Problem istnieje nawet w Eclipse Neon (12.05.2017)! Minęło 6 lat: O
Ram
2
@Ram .... iw Eclipse Oxygen (21.09.2017) !!
gior91

Odpowiedzi:

330

Miałem ten sam problem. Zainstalowałem Eclipse 3.7 w nowym folderze i utworzyłem nowy obszar roboczy. Uruchamiam Eclipse z argumentem -data, aby odwołać się do nowego obszaru roboczego.

Kiedy próbuję połączyć się z rynkiem, aby pobrać wtyczki SVN i Maven, otrzymuję te same problemy, które opisano w OP.

Po kilku kolejnych próbach wyczyściłem ustawienia proxy dla protokołu SOCKS i udało mi się połączyć z rynkiem.

Dlatego rozwiązaniem dla mnie było skonfigurowanie ręcznych ustawień proxy HTTP i HTTPS, wyczyszczenie ustawień dla SOCKS i ponowne uruchomienie Eclipse.

roostergx
źródło
To samo tutaj, zgłosiłem błąd i został zignorowany. Facet w zasadzie powiedział, że to „działa na mnie”. W ciągu ostatnich 10 lat ustawienia proxy nigdy nie działały zgodnie z oczekiwaniami. Muszę znaleźć jakieś ukryte ustawienia konfiguracyjne.
Berlin Brown
13
Rzeczywiście, chociaż wyglądało na to, że wartość SOCKS była całkowicie pusta, to nagle zadziałało po (dla konfiguracji MANUAL), gdy podświetliłem wiersz SOCKS, kliknąłem „Wyczyść”, a następnie OK, a następnie ponownie uruchomiłem zaćmienie. Jeśli to nie jest błąd, nie wiem, co to jest.
DanM,
Bardzo Ci dziękuję. Nigdy bym nie pomyślał, że to może być rozwiązanie. Byłem w firmowej zaporze sieciowej i próba aktualizacji wtyczki cleacase cały czas kończyła się niepowodzeniem. Wydaje się, że to rozwiązuje problem.
Ayusman
3
Miałem również ten problem i wypróbowałem powyższe kroki. Ale to nadal nie rozwiązało. Musiałem edytować [katalog instalacyjny eclipse] /configuration/.settings/org.eclipse.core.net.prefs i zresetować proxyData / SOCKS / hasAuth = false. Następnie postępuj zgodnie z instrukcjami w tej odpowiedzi
Delicia Brummitt
Dzięki Ci! To działało tylko dla mnie po ponownym uruchomieniu mojego komputera Ubuntu. Żadna zmiana ustawień, którą wprowadziłem, nie przekonałaby tego inaczej.
Seth
39

Ręczne + wyłączanie SOCKS nie działało dla mnie (nadal próbowałem używać SOCKS, a proxy mojej firmy odmówiło),
Native + zmienione eclipse.ini działało dla mnie

-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclient
-Dhttp.proxyHost=myproxy
-Dhttp.proxyPort=8080
-Dhttp.proxyUser=mydomain\myusername
-Dhttp.proxyPassword=mypassword
-Dhttp.nonProxyHosts=localhost|127.0.0.1

Te ustawienia wymagają ponownego uruchomienia IDE (czasami z -clean -refreshopcjami wiersza poleceń).
https://bugs.eclipse.org/bugs/show_bug.cgi?id=281472


Java8, Eclipse Neon3, wolny serwer proxy:

-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclient4
-Dhttp.proxyHost=<proxy>
-Dhttp.proxyPort=8080
-Dhttps.proxyHost=<proxy>
-Dhttps.proxyPort=8080
-DsocksProxyHost=
-DsocksProxyPort=
-Dhttp.proxyUser=<user>
-Dhttp.proxyPassword=<pass>
-Dhttp.nonProxyHosts=localhost|127.0.0.1
-Dorg.eclipse.equinox.p2.transport.ecf.retry=5
-Dorg.eclipse.ecf.provider.filetransfer.retrieve.connectTimeout=15000
-Dorg.eclipse.ecf.provider.filetransfer.retrieve.readTimeout=1000
-Dorg.eclipse.ecf.provider.filetransfer.retrieve.retryAttempts=20
-Dorg.eclipse.ecf.provider.filetransfer.retrieve.closeTimeout=1000
-Dorg.eclipse.ecf.provider.filetransfer.browse.connectTimeout=3000
-Dorg.eclipse.ecf.provider.filetransfer.browse.readTimeout=1000
Mikrofon
źródło
5
Cześć, czy wymagana jest część „Dorg.eclipse.ecf.provider.filetransfer.excludeContributors”?
Daniil Shevelev
Jaka jest różnica między httpclient4i httpclient?
m13r
2
Potwierdzone dla tlenu. 2 i 3A.
DigiLive
Działa dla Eclipse Oxygen, po prostu użyj natywnych ustawień sieci i dodaj te linie w eclipse.ini
user3437460
14

Istnieje parametr eclipse.ini (sts.ini), który może pomóc:

-Djava.net.useSystemProxies=true

Za każdym razem, gdy zmieniam środowisko pracy, tracę wiele wysiłku na to trywialne ustawienie ... Zobacz jeden z powiązanych błędów w witrynie Eclipse bugzilla .

razvanone
źródło
3
Na wszelki wypadek, gdyby dotyczyło to kogokolwiek innego, używanie useSystemProxies=truez Eclipse Oxygen powodowało problemy, ponieważ nie wykrywał poprawnie zmiennej env https_proxy. Więc chociaż strony http działały dobrze, strony https nie ładowały się. Należy również pamiętać, że po skonfigurowaniu tego ustawienia ustawienia odczytywane ze środowiska zastępują ustawienia serwera proxy Eclipse.
Parisbre56
13

Aby dodać do wątku jako MOŻLIWE rozwiązanie, napotkałem podobny problem podczas programowania w systemie Linux, który był za zaporą firmową. Jednak korzystając z komputera z systemem Windows XP, Eclipse był w stanie uzyskać dostęp do różnych witryn aktualizacji, ponieważ zarówno ręczni, jak i natywni dostawcy połączeń sieciowych działali dobrze, korzystając z firmowego serwera proxy.

Po pewnym czasie natknąłem się na dyskusję o używaniu NTLMv2 i implementacji, którą można znaleźć pod adresem http://cntlm.sourceforge.net/ . Każdemu, kto to opublikował, przypisuję wiele uznania, ponieważ pomogło mi to obejść problem z działaniem w systemie Linux. Na marginesie, używałem Eclipse 3.6.2 / Helios zarówno w dystrybucjach Linuksa, jak i Windows.

Powodzenia w znalezieniu rozwiązania!

Michael
źródło
Wypróbowałem wszystkie inne sugestie, ale nic nie pomogło. Instalacja CNTLM załatwiła sprawę. Używam Windows 7, JDK 1.7, Eclipse 4.3.2
slu,
@slu Cieszę się, że to zadziałało! Do tej pory to nadal działa, nawet przy migracji do najnowszych wersji JDK i Eclipse.
Michael,
Używanie cntlm jako lokalnego serwera proxy działa również w moim przypadku. Musiałem też wyłączyć skarpetki, w przeciwnym razie localhost: port nie będzie działał z zaćmieniem Luna.
Bort
12

wreszcie pracuj dla mnie!

W Eclipse, Okno> Preferencje> Ogólne> Połączenia sieciowe,
ustaw Active Provider na Native
add do eclipse.ini :

-Djava.net.useSystemProxies=true
-Dhttp.proxyPort=8080
-Dhttp.proxyHost=myproxy
-Dhttp.proxyUser=mydomain\myusername
-Dhttp.proxyPassword=mypassword
-Dhttp.nonProxyHosts=localhost|127.0.0.1|192.168.*|10.*
-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclient4
Naami
źródło
5

Zainstalowałem HandyCache, w nich link instalacyjny na moim ogólnym proxy.

W IE ustaw proxy 127.0.0.1.

W Eclipse, Okno> Preferencje> Ogólne> Połączenia sieciowe, ustaw Active Provider = Native.

Maksyma
źródło
0

Dla mnie idę do \ eclipse \ configuration.settings \ org.eclipse.core.net.prefs ustawiam właściwość systemProxiesEnabled na true ręcznie i ponownie uruchamiam eclipse.

vuhoanghiep1993
źródło