Ihr Projekt hat sich im Zug nach Hause nicht verändert, aber seine Netzwerkroute schon. Eine Proxy-Adresse, die im Büro funktioniert, kann zu Hause unerreichbar sein. Das ist eine Umgebungseinstellung, kein Grund, den Proxy Ihres Arbeitgebers in das POM des Projekts zu schreiben.

Das Einstellungsmodell von Maven legt Proxy-Definitionen in seinem obersten Abschnitt proxies ab. Einstellungsprofile liefern keine zweite beliebige Kopie dieses Abschnitts. Ein proxy-förmiges XML-Fragment unter einem Profil hinzuzufügen macht daraus keinen unterstützten Mechanismus zum Umschalten des Netzwerks.

Eine einfache Option ist, genehmigte Einstellungen für jede Umgebung zu pflegen und die passende auszuwählen:

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

Das Beispiel wählt Benutzereinstellungen ausdrücklich aus. Verwenden Sie den Befehl und die Datei, die zum Build passen; das bedeutet nicht, dass die Datei mit Zugangsdaten eingecheckt werden sollte.

Halten Sie die Unterschiede klein

Notieren Sie, welche Einstellungen tatsächlich variieren: aktiver Proxy, Bypass-Hosts, Mirrors und erforderliche Serverkonten. Eine zweite Datei sollte nicht stillschweigend eine unabhängige Repository-Richtlinie entfernen oder ein altes Passwort verwenden.

Prüfen Sie alle globalen Einstellungen, die noch mit den ausgewählten Benutzereinstellungen zusammengeführt werden. Eine explizite Datei macht die Eingabe sichtbar, bedeutet aber nicht, dass Maven keine anderen Konfigurationsquellen hat.

Automatisches Umschalten braucht ein echtes Signal

Maven kann "Büro" nicht im üblichen Sinn aus dem Standort des Laptops ableiten. Eine automatische Einrichtung benötigt einen unterstützten externen Erkennungs- oder Verwaltungsmechanismus und eine definierte Reaktion, wenn dieser Mechanismus nicht verfügbar ist.

Seien Sie vorsichtig mit breiten Bypass-Mustern, die den Proxy zu Hause deaktivieren sollen. Sie können auch interne Ziele beeinflussen oder verschleiern, welche Route eine Anfrage genommen hat.

Bevorzugen Sie für eine erste Reparatur eine sichtbare, ausdrückliche Auswahl der Einstellungen. Sobald sie in beiden Umgebungen funktioniert, kann jede Automatisierung diese bekannte Konfiguration reproduzieren, statt die Build-Anweisungen des Projekts wiederholt umzuschreiben.

Ähnliche Artikel