Announcement

Collapse
No announcement yet.

Snippet: Maven2 gleichzeitig mit http- und https-Proxy mit Einträgen in Datei m2.conf

Collapse
This is a sticky topic.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Snippet: Maven2 gleichzeitig mit http- und https-Proxy mit Einträgen in Datei m2.conf

    Moin,

    ich hab grad drei Stunden lang an dem Problem gedoktert und, weil im Netz dazu wirklich NICHTS steht, dachte ich mir poste ich das mal. Für den Fall, dass es jemand anderes gebrauchen kann.

    Also folgende Situation. Ich sitze hinter einem Proxy. Wenn Maven dependencies aus dem Internet laden will, muss es also da durch. Dafür gibt es in der settings.xml die Sektion "proxies", in der man seine Proxy-Server eintragen kann. Das ganze sieht dann so aus:
    Code:
    <proxies>
        <proxy>
          <id>meineId</id>
          <active>true</active>
          <protocol>http</protocol>
          <host>meinHost</host>
          <port>meinPort</port>
          <nonProxyHosts>adresseDirektAufgerufen</nonProxyHosts>
        </proxy>
     </proxies>
    Soweit so einfach. Bisher hat das ohne Probleme funktioniert. Seit neuestem will ich aber auf ein Maven-Repository über https zugreifen (das hier: https://repository.jboss.org/nexus/c...groups/public/). Das Maven-Central Repository ist über http erreichbar. Man braucht also eine Konfiguration, mit der beides gleichzeitig geht.

    Und nun steht man da. Als erstes hab ich folgendes (erfolglos) versucht:
    • Mehrere Protokolle im <protocol>-Tag angeben. Ich habs mit Komma, Semikolon und Leerzeichen als Trenner versucht. Geht nicht.
    • Mehrere <protocol>-Tags einfügen. Ist verboten. Schema findet man hier: http://maven.apache.org/xsd/settings-1.0.0.xsd
    • Zwei Proxies angeben, einen für http und einen für https. Geht auch nicht. Maven nimmt immer nur den ersten, bei dem <active>true</active> steht


    Nach vielem Rumsurfen hab ich herausgefunden, dass man zwei Properties beim Kommandozeilenaufruf mitgeben muss, damit es geht. Ein Aufruf sieht z.B. so aus:
    • mvn clean compile -Dhttps.proxyHost=meinHost -Dhttps.proxyPort=meinProxyport

    Aber jedesmal die Properties über die Kommandozeile setzen ist sehr unkomfortabel. Also hab ich rumprobiert, ob man die Properties auch irgendwo anders setzen kann. Erstmal wieder eine Liste der Stellen, an denen es nicht geht:
    • <properties>-Section in der pom.xml
    • <properties>-Section in einer <profile>-Section in der pom.xml. Auch nicht, wenn das profile aktiviert ist.
    • <properties>-Section in einer <profile>-Section in der settings.xml. Auch nicht, wenn das profile aktiviert ist.


    Und zum Schluss die Lösung. Im bin-Verzeichnis der Maven Installation gibt es die datei m2.conf. Mit folgenden beiden Einträgen funktioniert es:
    • set https.proxyHost default meinHost
    • set https.proxyPort default meinPort


    Hoffe, es hilft jemandem.

    Viele Grüße, ngomo
    http://www.winfonet.eu
Working...
X