2015-06-24 2 views
26

Ich benutze Maven 3.1.1 hinter einem Proxy-Server. Derselbe Proxy verarbeitet sowohl HTTP als auch HTTPS Datenverkehr.Wie konfiguriert man einen Proxy-Server für HTTP und HTTPS in Maven's settings.xml?

Ich kann nicht sagen, Maven mit settings.xml, beide Protokolle zu verwenden. Es scheint mir, dass es nur möglich ist, einen aktiven Proxy zu haben, da der zuerst aktive Proxy verwendet wird und nachfolgende "aktive" Proxy-Definitionen ignoriert werden. Das ist mein 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> 

Ist es möglich, einen Proxy für beide HTTP und HTTPS in Maven settings.xml zu konfigurieren? Ich bin mir bewusst, dass ich das umgehen könnte durch Java Systemeigenschaften auf den Maven-Aufruf vorbei wie:

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

aber sicher muss diese möglich sein, von innerhalb settings.xml?

Maven Fehler wie MNG-2305 und MNG-4394 schlagen vor, dieses Problem ist gelöst, aber ich bin nicht davon überzeugt.

Alternativ, gibt es einen "Proxy-Proxy", den ich lokal ausführen könnte, auf den ich Maven zeigen könnte? Der "Proxy-Proxy" würde http/https entsprechend routen. Trotzdem müsste ich noch zwei aktive Proxy-Definitionen in settings.xml für Maven definieren, um beide Arten von Verkehr zu steuern.

Antwort

-2

Ich bin nicht sehr sicher, aber gemäß der Dokumentation MNG-4394 unterstützen sie Wildcards. So können Sie versuchen

http|https

oder

<protocol>*</protocol> 

und es könnte funktionieren.

+0

Sie erwähnen einen Verweis auf Dokumentation - haben Sie eine URL dafür, nicht sicher, was Sie beziehen sich auf? Danke –

+0

bearbeitet. Es ist eine Patch-Anfrage, nicht sehr sicher, ob es in den neuesten Versionen enthalten ist. –

+0

[MNG-4394] (https://issues.apache.org/jira/browse/MNG-4394) wurde nur geschlossen, weil es ein Duplikat von [MNG-2305] ist (https://issues.apache.org/jira/browse/MNG-2305). Wie andere Benutzer auf der JIRA-Seite von 2305 andeuten, sieht es nicht so aus, als wäre dieses Problem behoben ... –

21

Maven Proxy von settings.xml für verwendet, um sowohl HTTP und HTTPS, so dass Sie nur einen Proxy-Server definieren müssen, und es wird für beide verwendet werden, müssen Sie nur nur ein proxy Tag verlassen, wie folgt aus:

<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> 

Das obige Protokoll ist das Protokoll des Proxy-Servers, nicht die Proxy-Anfrage.

+1

Sehr nützliche Informationen, eine Schande, Sie wurden nicht mehr dafür gutgeschrieben. +1, arbeitete für mich. –

+1

@krzyk [Maven Einstellungen Dokumentation] (https://maven.apache.org/settings.html#Proxies) würde mit Ihnen übereinstimmen: _protocol, Host, Port: Das Protokoll: // Host: Port des Proxys , in einzelne Elemente getrennt. _ Ich werde versuchen, dies erneut zu testen - es ist schon einige Zeit ...! –

+3

Ich weiß, das sieht aus wie das Protokoll bezieht sich auf das Protokoll des Proxys, aber für mich hat es nicht mit nur einem Proxy funktioniert. Wenn ich zwei Proxies hinzugefügt habe, wie das OP vorgeschlagen hat, dann funktionierte es für mich (mit Maven 3.3.9). Am Anfang funktionierte das nicht, weil ich den Proxy-Server in settings.xml kopiert und eingefügt habe und vergessen habe, eine andere ID für den zweiten Proxy-Server zu vergeben. Nachdem ich eine andere ID gesetzt habe, hat es funktioniert. –

0

Ich löste das Problem mit der Aktualisierung der Maven-Version, oder anders gesagt nicht mit der eingebetteten Eclipse Maven-Version, sondern externe Version 3.3.9.

0

Es ohne arbeitet das zusätzliche ...<id>httpsproxy</id>... Eintrag (als @Krzysztof Krason erwähnt) und mit ihm (wie der Fragesteller angegeben). Das Problem für uns war, dass die Eclipse->Maven->User Settings->[x] Update Settings offensichtlich überhaupt nicht funktionierte und bestimmte Dinge Eclipse->Maven->[x] Download repository index updates on startup überprüft werden müssen (z. B. Maven Repositories View->Global Repositories->central->Update Index). Und vor allem:

Eclipse muss nach jedem settings.xml Update neu gestartet werden! : -/

Ich denke, es ist ein Bug oder Reload/Caching-Problem. Wir testeten sie erfolgreich mit

  • Kepler (4.3) und Neon (4.6)
  • und ihre eingebetteten Maven-Versionen (3.2.1/3.3.9) sowie ein externes 3.3.3
  • mit http:// und https:// URLs
Verwandte Themen