2015-06-24 19 views
26

Używam Maven 3.1.1 za serwerem proxy. Ten sam serwer proxy obsługuje zarówno ruch HTTP, jak i HTTPS.Jak skonfigurować serwer proxy dla HTTP i HTTPS w pliku settings.xml Mavena?

Nie mogę powiedzieć, że maven używa settings.xml do korzystania z obu protokołów. Wydaje mi się, że możliwe jest tylko jedno aktywne proxy, ponieważ używa się dowolnego aktywnego proxy, a kolejne "aktywne" definicje proxy są ignorowane. To jest mój settings.xml:

<proxies> 
    <proxy> 
     <id>myhttpproxy</id> 
     <active>true</active> 
     <protocol>http</protocol> 
     <host>192.168.1.2</host> 
     <port>3128</port> 
     <nonProxyHosts>localhost</nonProxyHosts> 
    </proxy> 
    <proxy> 
     <id>myhttpsproxy</id> 
     <active>true</active> 
     <protocol>https</protocol> 
     <host>192.168.1.2</host> 
     <port>3128</port> 
     <nonProxyHosts>localhost</nonProxyHosts> 
    </proxy> 
</proxies> 

Czy to możliwe, aby skonfigurować serwer proxy dla obu HTTP i HTTPS w Maven na settings.xml? Zdaję sobie sprawę, że mogę obejść ten przekazując właściwości systemowe Java do wywołania maven takich jak:

-Dhttps.proxyHost=192.168.1.2 -Dhttps.proxyPort=3128 

ale na pewno musi to być możliwe od wewnątrz settings.xml?

Podniesione bugi takie jak MNG-2305 i MNG-4394 sugerują, że problem został rozwiązany, ale nie jestem przekonany.

Alternatywnie, czy istnieje "proxy proxy", który mógłbym uruchomić lokalnie, na który mogłem zwrócić uwagę? "Proxy proxy" będzie odpowiednio trasować http/https. Mimo to, nadal musiałbym zdefiniować dwie aktywne definicje proxy w settings.xml, aby Maven mógł kierować obydwoma rodzajami ruchu.

Odpowiedz

-2

Nie jestem pewien, ale zgodnie z dokumentacją tutaj MNG-4394, obsługują one symbole wieloznaczne. Więc możesz spróbować

http|https

lub

<protocol>*</protocol> 

i może pracować.

+0

wspomnieć odniesienie do dokumentacji - masz URL do tego, nie wiem co masz na myśli? Dzięki –

+0

edytowane. Jest to żądanie poprawki, niezbyt pewne, czy jest zawarte w najnowszych wydaniach. –

+0

[MNG-4394] (https://issues.apache.org/jira/browse/MNG-4394) został zamknięty tylko dlatego, że jest duplikatem [MNG-2305] (https://issues.apache.org/jira/browse/MNG-2305). Jak inni użytkownicy na stronie JIRA 2305 sugerują, nie wygląda na to, aby ten problem został naprawiony ... –

21

Maven proxy z settings.xml służy zarówno dla HTTP i HTTPS, więc po prostu trzeba zdefiniować jeden serwer proxy i będzie stosowany zarówno, wystarczy pozostawić tylko jedną proxy tag tak:

<proxies> 
    <proxy> 
     <id>myhttpproxy</id> 
     <active>true</active> 
     <protocol>http</protocol> 
     <host>192.168.1.2</host> 
     <port>3128</port> 
     <nonProxyHosts>localhost</nonProxyHosts> 
    </proxy> 
</proxies> 

Powyższy protokół jest protokołem serwera proxy, a nie serwerem proxy.

+1

Bardzo przydatne informacje, szkoda, że ​​nie otrzymałeś za nie więcej pieniędzy. +1, pracował dla mnie. –

+1

@krzyk [dokumentacja ustawień maven] (https://maven.apache.org/settings.html#Proxies) prawdopodobnie się z tobą zgadza: _protocol, host, port: Protokół: // host: port serwera proxy , rozdzielone na dyskretne elementy. Spróbuję ponownie przetestować to - już od jakiegoś czasu ...! –

+3

Wiem, że wygląda na to, że protokół odnosi się do protokołu proxy, ale dla mnie nie działał tylko z jednym proxy. Kiedy dodałem dwa proxy, tak jak sugerował OP, to dla mnie zadziałało (z Mavenem 3.3.9). Początkowo nie działało, ponieważ kopiowałem/wklejałem serwer proxy w settings.xml i zapomniałem wstawić inny identyfikator dla drugiego serwera proxy. Po dodaniu innego identyfikatora zadziałało. –

0

Rozwiązałem problem z aktualizowaniem wersji programu maven lub innymi słowy, nie używając wbudowanej wersji programu Eclipse maven, ale wersji zewnętrznej 3.3.9.

0

To działa bez dodatkowy ...<id>httpsproxy</id>... wpis (jak wspomniano @Krzysztof Krasoń) a wraz z nim (jak pytający stwierdził). Problemem dla nas było to, że nie działało w ogóle i przetestować pewne rzeczy, które należy sprawdzić pod Eclipse->Maven->[x] Download repository index updates on startup (np. Maven Repositories View->Global Repositories->central->Update Index). A przede wszystkim:

Eclipse należy zrestartować po każdej aktualizacji settings.xml! : -/

Przypuszczam, że to błąd lub problem z ponownym ładowaniem/buforowaniem. powodzeniem przetestowane z

  • Keplera (4.3) i (4.6) Neon
  • osadzonymi i ich wersjach Mavena (3.2.1/3.3.9), jak i zewnętrznym 3.3.3
  • z http:// i https:// URL