2015-06-24 26 views
26

Sto usando Maven 3.1.1 dietro un server proxy. Lo stesso proxy gestisce sia il traffico HTTP e HTTPS.Come configurare un server proxy per HTTP e HTTPS in settings.xml di Maven?

Non riesco a dire a Maven che utilizza settings.xml per utilizzare entrambi i protocolli. Mi sembra che sia possibile avere solo un proxy attivo, poiché viene utilizzato il proxy attivo per primo e le successive definizioni proxy 'attive' vengono ignorate. Questo è il mio 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> 

E 'possibile configurare un proxy sia per HTTP e HTTPS a Maven di settings.xml? Mi rendo conto che avrei potuto risolvere questo passando proprietà di sistema Java per l'invocazione Maven come ad esempio:

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

ma sicuramente questo deve essere possibile dall'interno settings.xml?

I bug Maven generati come MNG-2305 e MNG-4394 suggeriscono che questo problema è stato risolto, ma non ne sono convinto.

In alternativa, c'è un "proxy proxy" che potrei eseguire localmente per indirizzare Maven? Il "proxy proxy" avrebbe indirizzato http/https di conseguenza. Anche così, dovrei comunque definire due definizioni proxy attive in settings.xml affinché Maven possa dirigere entrambi i tipi di traffico.

risposta

-2

Non sono molto sicuro, ma secondo la documentazione qui MNG-4394, supportano i caratteri jolly. Quindi si potrebbe provare

http|https

o

<protocol>*</protocol> 

e potrebbe funzionare.

+0

menzionate un riferimento alla documentazione - avete un URL per questo, non siete sicuri di cosa vi state riferendo? Grazie –

+0

modificato. È una richiesta di patch, non molto sicura se è inclusa nelle ultime versioni. –

+0

[MNG-4394] (https://issues.apache.org/jira/browse/MNG-4394) è stato chiuso solo perché è un duplicato di [MNG-2305] (https://issues.apache.org/jira/browse/MNG-2305). Come suggeriscono altri utenti sulla pagina JIRA del 2305, non sembra che questo problema sia stato risolto ... –

21

Maven delega da settings.xml è usato sia per HTTP e HTTPS, in modo che solo bisogno di definire un server proxy e sarà utilizzato per entrambi, è sufficiente lasciare un solo proxy tag, in questo modo:

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

Il protocollo precedente è il protocollo del server proxy, non la richiesta inoltrata.

+1

Informazioni molto utili, peccato che non ne sia stato accreditato di più. +1, ha funzionato per me. –

+1

@krzyk [documentazione delle impostazioni di maven] (https://maven.apache.org/settings.html#Proxies) sembra essere d'accordo con te: _protocol, host, porta: Il protocollo: // host: porta del proxy , separato in elementi discreti._ Proverò a ri-testare questo - è passato un po 'di tempo ...! –

+3

So che questo sembra che il protocollo si riferisca al protocollo del proxy, ma per me non ha funzionato con un solo proxy. Quando ho aggiunto due proxy, come suggerito dal PO, allora per me ha funzionato (con Maven 3.3.9). All'inizio non ha funzionato perché ho copiato/incollato il server proxy in settings.xml e mi sono dimenticato di inserire un ID diverso per il secondo server proxy. Dopo aver inserito un ID diverso, ha funzionato. –

0

Ho risolto il problema con l'aggiornamento della versione di Maven, o in altre parole non utilizzando la versione di Eclipse Maven incorporata, ma la versione esterna 3.3.9.

0

E funziona senza l'extra ...<id>httpsproxy</id>... ingresso (come detto @Krzysztof Krason) e con esso (come il richiedente ha dichiarato). Il problema per noi era che il Eclipse->Maven->User Settings->[x] Update Settings ovviamente non funzionava affatto e per verificare alcune cose Eclipse->Maven->[x] Download repository index updates on startup deve essere controllato (ad esempio Maven Repositories View->Global Repositories->central->Update Index). E soprattutto:

Eclipse deve essere riavviato dopo ogni aggiornamento settings.xml! : -/

Suppongo che si tratti di un bug o di un problema di ricarica/memorizzazione nella cache. Abbiamo testato con successo con

  • Kepler (4.3) e Neon (4.6)
  • e le loro versioni incorporate Maven (3.2.1/3.3.9), così come un esterno 3.3.3
  • con http:// e https:// URL
Problemi correlati