Il tuo progetto non è cambiato sul treno verso casa, ma il suo percorso di rete sì. Un indirizzo proxy che funziona in ufficio può essere irraggiungibile a casa. È un'impostazione d'ambiente, non un motivo per mettere il proxy del tuo datore di lavoro nel POM del progetto.

Il modello di impostazioni di Maven colloca le definizioni proxy nella sezione di primo livello proxies. I profili delle impostazioni non forniscono una seconda copia arbitraria di quella sezione. Aggiungere un frammento XML a forma di proxy sotto un profilo non lo rende un meccanismo di commutazione di rete supportato.

Un'opzione semplice è mantenere impostazioni approvate per ciascun ambiente e selezionare quella adatta:

mvn --settings /path/to/settings-office.xml verify

L'esempio seleziona esplicitamente le impostazioni utente. Usa il comando e il file adatti alla build; ciò non significa che il file debba essere committato con le credenziali.

Mantieni piccole le differenze

Annota quali impostazioni variano davvero: proxy attivo, host di bypass, mirror e account server richiesti. Un secondo file non dovrebbe rimuovere silenziosamente una politica di repository non correlata né usare una vecchia password.

Controlla eventuali impostazioni globali ancora unite alle impostazioni utente selezionate. Un file esplicito rende visibile l'input, ma non implica che Maven non abbia altre fonti di configurazione.

La commutazione automatica richiede un segnale reale

Maven non può dedurre "ufficio" dalla posizione del portatile nel senso comune. Un meccanismo automatico richiede un sistema esterno di rilevamento o gestione supportato e una risposta definita quando tale meccanismo non è disponibile.

Fai attenzione ai pattern di bypass ampi pensati per disattivare il proxy a casa. Possono anche influire su destinazioni interne o nascondere quale percorso ha seguito una richiesta.

Per una prima riparazione, preferisci una selezione delle impostazioni visibile ed esplicita. Una volta che funziona in entrambi gli ambienti, qualsiasi automazione può riprodurre quella configurazione nota invece di riscrivere ripetutamente le istruzioni di build del progetto.

Articoli correlati