Frage

Ich möchte meine Erfahrung teilen einen Proxy mit Maven durch.

Sie würden höchstwahrscheinlich Gesicht Ausnahmen und Meldungen wie:

repository metadata for: 'org.apache.maven.plugins' could not be retrieved from 
repository: central due to an error: Error transferring file: Connection refused: connect

oder

[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-clean-
plugin:2.5: Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its 
dependencies could not be resolved: Failed to read artifact descriptor for 
org.apache.maven.plugins:maven-clean-plugin:jar:2.5

Wie Maven konfigurieren Proxy-Server verwenden?

War es hilfreich?

Lösung 6

Diese werden verursacht höchstwahrscheinlich von 2 Ausgaben:

  1. Sie müssen Proxy-Konfiguration auf Ihre settings.xml hinzuzufügen. Hier ist ein Trick in Ihrem Benutzername Feld. Stellen Sie sicher, es sieht aus wie Domäne \ Benutzername. Festlegen der Domäne gibt und genau diesen Schrägstrich setzen ist wichtig, ‚\‘. Vielleicht haben Sie verwenden möchten Tag, wenn Sie Ihr Passwort enthält nicht xml freundliche Zeichen.
  2. Ich habe bemerkt, Maven 2.2.0 nicht manchmal überhaupt über einen Proxy funktioniert, wo 2.2.1 funktioniert perfekt in Ordnung.

Wenn einige von denen, weggelassen werden -. Maven mit Zufallsfehlermeldungen fehlschlagen könnten

Hoffe nur, dass ich jemanden aus googeln, um dieses Problem für 6 Stunden gespeichert haben, wie ich.

Andere Tipps

Für Einzelheiten über einen Proxy für Maven einrichten, finden Sie in den Mini-Guide .

Im Wesentlichen müssen Sie den Proxy-Abschnitt in, um sicherzustellen, entweder die globalen Einstellungen ([maven install]/conf/settings.xml) oder Benutzereinstellungen (${user.home}/.m2/settings.xml) richtig konfiguriert sind. Es ist besser, diese Einstellungen in Ihrem Benutzer zu tun, um zu vermeiden, das Passwort im Klartext in einem öffentlichen Ort zu speichern.

Maven 2.1 eingeführt Passwort-Verschlüsselung , aber ich habe nicht bekommen Runde zu überprüfen, ob die Verschlüsselung für die Proxy-Einstellungen gilt auch als Repository Passwörter (nicht sehen, warum es würde allerdings nicht).

Für Infos gibt es eine kommentierte-out-Proxy-Konfiguration in Ihrem settings.xml und Anweisungen, wie es zu ändern.

Von der Mini-Guide, um Ihre Einstellungen wie folgt aussehen sollte:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                  http://maven.apache.org/xsd/settings-1.0.0.xsd">
[...]
  <proxies>
    <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxy.somewhere.com</host>
      <port>8080</port>
      <username>proxyuser</username>
      <password>somepassword</password>
      <nonProxyHosts>www.google.com|*.somewhere.com</nonProxyHosts>
    </proxy>
  </proxies>
[...]
</settings>

Wie man einen SOCKS-Proxy benutzen?

einen SSH-Tunnel zu einem Server irgendwo ein:

ssh -D $PORT $USER@$SERVER

Linux (bash):

export MAVEN_OPTS="-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=$PORT"

Fenster:

set MAVEN_OPTS="-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=$PORT"

Beachten Sie auch, dass einige Plugins (Remote-Ressourcen in den Sinn kommt), um eine wirklich alte Bibliothek verwenden, die akzeptiert nur Proxy-Konfiguration durch MAVEN_OPTS;

-Dhttp.proxyHost=<host> -Dhttp.proxyPort=<port> -Dhttps.proxyHost=<host> -Dhttps.proxyPort=<port>

Sie können auf Auth für diese geklebt werden.

Ich hatte auch dieses Problem, und ich löste es durch Editieren der Datei settings.xml in meinem .m2 Ordner. Meine settings.xml wie dies jetzt:

<settings>
  <proxies>
    <proxy>
      <id>genproxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxyHost</host>
      <port>3128</port>
      <username>username</username>
      <password>password</password>
    </proxy>
 </proxies>
</settings>

auf Maven Proxy :

Bearbeiten Sie die Proxy-Sitzung in der ~ / .m2 / settings.xml . Wenn Sie die Datei nicht finden können, erstellen.

<settings>
<proxies>
    <proxy>
        <id>httpproxy</id>
        <active>true</active>
        <protocol>http</protocol>
        <host>your-proxy-host</host>
        <port>your-proxy-port</port>
        <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
<proxy>
        <id>httpsproxy</id>
        <active>true</active>
        <protocol>https</protocol>
        <host>your-proxy-host</host>
        <port>your-proxy-port</port>
        <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>

</proxies>
</settings>

oder

Bearbeiten Sie die Proxy-Sitzung in der {M2_HOME} /conf/settings.xml

Hoffe, es hilft ..:)

Nur meine eigenen Erfahrungen mit diesem hinzuzufügen: meine Firma Proxy http://webproxy.intra.companyname.com:3128 ist. Für Maven über diesen Proxy zu arbeiten, müssen die Einstellungen sein genau wie folgt

<settings>
  <proxies>
    <proxy>
      <id>default</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>webproxy.intra.companyname.com</host>
      <port>3128</port>
    </proxy>
  </proxies>
</settings>

Im Gegensatz zu einigen anderen Proxy-Konfigurationsdateien, beschreibt der protocol hier, wie an den Proxy-Server verbinden, nicht die Art von Protokoll-Proxy-Klasse zugänglich sein sollte. Der http Teil des Ziels hat aus dem Hostnamen werden abspalten, sonst wird es nicht funktionieren.

Danke @krosenvold.

Wenn die Einstellungen Dateiänderungen nicht funktionieren, versuchen Sie dies in der Eingabeaufforderung die POM-Datei mit.

mvn install -Dhttp.proxyHost=abcproxy -Dhttp.proxyPort=8080 -Dhttps.proxyHost=abcproxy -Dhttps.proxyPort=8080

Das hat mir sofort nach einer Kennwortänderung geholfen.

Ich betreibe cntlm localy, konfiguriert mit NTLMv2 Passwort-Hashes mit dem Corporate-Proxy zu authentifizieren, und verwenden Sie

export MAVEN_OPTS="-DproxyHost=127.0.0.1 -DproxyPort=3128"

, dass die Proxy von maven zu verwenden. Natürlich ist der Proxy Sie unterstützt cntlm / NTLMv2 verwenden sollte.

Und zu diesem Thema zu schreiben, here're meine Erfahrungen unter ... wirklich seltsam und zeitraubend, so dachte ich, es war noch hinzugefügt.

Ich habe ein ähnliches Problem habe gebaut Portlet-Brücke auf Windows versucht, die folgenden Fehler bekommen:

Downloading: http://repo1.maven.org/maven2/org/apache/portals/bridges-pom/1.0/bridges-pom-1.0.pom
[DEBUG] Reading resolution tracking file C:\Documents and Settings\myuser\.m2\repository\org\apache\portals\bridges-pom\1.0\bridges-pom-1.0.pom.lastUpdated
[DEBUG] Writing resolution tracking file C:\Documents and Settings\myuser\.m2\repository\org\apache\portals\bridges-pom\1.0\bridges-pom-1.0.pom.lastUpdated
[ERROR] The build could not read 1 project -> [Help 1]
org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM: Could not transfer artifact
org.apache.portals:bridges-pom:pom:1.0 from/to central (http://repo1.maven.org/maven2): Error transferring file: repo1.maven.org and 'parent.relativePath' points at wrong local
POM @ line 23, column 11
...
[ERROR]   The project org.apache.portals.bridges:portals-bridges-common:2.0 (H:\path_to_project\portals-bridges-common-2.0\pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM: Could not transfer artifact org.apache.portals:bridges-pom:pom:1.0 from/to central (http://repo1.maven.org/maven2):
Error transferring file: repo1.maven.org and 'parent.relativePath' points at wrong local POM @ line 23, column 11: Unknown host repo1.maven.org -> [Help 2]
...
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException

Ich habe versucht, ein paar Dinge, nach ein bisschen Surfen:

  • Versucht, die parent.relativePath als leer zu setzen, so dass Maven nicht glaubte, die Eltern waren lokal. Dies ist gemäß dem Vorschlag auf SO unter Hudson bauen scheitern: Non-auflösbare Mutter POM und in diesem Forum Nabble . Dies hatte keine Wirkung.

  • Ich habe auch versucht ausdrücklich in meinem settings.xml aufgeführt wurde das Repository gewährleistet, aber das hatte keinen Einfluss auch nicht.

  • ich dann sichergestellt wurde mvn das Repository zum Nachschlagen gezwungen, anstatt auf seine eigene Geschichte zu verlassen, wie in Blog von Sarthon . Leider war dies nicht das Problem auch nicht.

  • In einigen Verzweiflung, ich revisited dann meine MAVEN_OPTS ich, um sicherzustellen, wurde nicht Foul meiner Proxy-Einstellungen fallen. Diese waren richtig, wenn auch mit dem Wert unquoted:

      

    gesetzt MAVEN_OPTS = -Dhttp.proxyHost = myproxy.mycompany.com -Dhttp.proxyPort = 8080 -Xmx256m

  • So, endlich habe ich die Proxy-Konfiguration in meine settings.xml bewegt und das funktionierte:

    <proxies>
      <proxy>
        <id>genproxy</id>
        <active>true</active>
        <protocol>http</protocol>
        <!--username>proxyuser</username-->
        <!--password>proxypass</password-->
        <host>myproxy.mycompany.com</host>
        <port>8080</port>
        <nonProxyHosts>*.mycompany.com|127.0.0.1</nonProxyHosts>
      </proxy>
    </proxies>

Wirklich nicht sicher, warum meine ursprüngliche MAVEN_OPTS nicht (zitiert?) Arbeitet, während die settings.xml Config Arbeit tat. Ich möchte das Update umkehren und jeden Schritt überprüfen wieder, aber zu viel Zeit verschwendet. Wird berichten, wie und wann.

Ich weiß, dass dies auf die Frage nicht wirklich eine Antwort ist, aber es könnte für jemanden sucht diesen Beitrag wissenswert sein. Es ist auch möglich, einen Maven-Repository-Proxy wie nexus zu installieren.

Ihre Maven würde konfiguriert die lokale Nexus-Proxy zu kontaktieren, und Nexus würde dann abgerufen werden (und Cache), um die Artefakte. Es kann über eine Web-Schnittstelle konfiguriert werden und bietet Unterstützung für (http) Proxies).

Dies kann ein Vorteil sein, vor allem in einer Gesellschaft zu stellen, da Artefakte vor Ort zur Verfügung und kann schnell heruntergeladen werden, und Sie sind nicht so abhängig von der Verfügbarkeit von externen Maven-Repositories mehr.

auf die Frage, um eine Verknüpfung zurück; mit Nexus gibt es eine nette GUI für die Proxy-Konfiguration, und es muss nur an einem Ort durchgeführt werden, und nicht für jeden Entwickler.

Wenn Maven über Proxy funktioniert, aber nicht einige der Plugins es aufruft, versuchen JAVA_TOOL_OPTIONS Einstellung als auch mit -Dhttp*.proxy* Einstellungen.

Wenn Sie bereits JAVA_OPTS nur tun

export JAVA_TOOL_OPTIONS=$JAVA_OPTS

Wenn Sie sind neu in Proxy-Setup für Maven In meinem Fall zuerst gehen und überprüfen Sie Ihre Home-Ordner Wetter gibt es .m2 Ordner und darin sollte es eine Datei sein namens settings.xml wenn es nicht schaffen, und fügen Sie diese und ändern host und port , dann ist die nonProxyHosts bei Bedarf ändern

  

Home-Ordner - C: \ Users \ {Username}

<settings>
<proxies>
    <proxy>
        <id>httpproxy</id>
        <active>true</active>
        <protocol>http</protocol>
        <host>your-proxy-host</host>
        <port>your-proxy-port</port>
        <nonProxyHosts>localhost</nonProxyHosts>
    </proxy>
<proxy>
        <id>httpsproxy</id>
        <active>true</active>
        <protocol>https</protocol>
        <host>your-proxy-host</host>
        <port>your-proxy-port</port>
        <nonProxyHosts>localhost</nonProxyHosts>
    </proxy>

</proxies>
</settings>

Wenn jeder Fall dieser Erfolg nicht die Änderungen in dieser Lage von Home-Ordner gehen und

/conf/settings.xml

Ich bin mit Eclipse als mein IDE
Hoffe, dass dies helfen wird !!

Mit Ausnahme der oben genannten Techniken, mit einiger Mühe, Sie Maven über Proxy laufen können jproxyloader Bibliothek (es gibt beispielsweise auf Seite, wie dies zu tun: http://jproxyloader.sourceforge.net/ ). Dies erlaubt nur SOCKS-Proxy einrichten für Artefakte heruntergeladen werden.

In Lösung von duanni erwähnt (Einstellung -DsocksProxyHost) gibt es ein Problem. Wenn Sie Tests Integration gegen die lokale Datenbank ausgeführt wird (oder eine andere Tests URL verbinden, die nicht über einen Proxy gehen sollte). Diese Tests werden aufhören zu arbeiten, weil Verbindungen zur Datenbank wird auch an den Proxy geleitet werden. Mit Hilfe von jProxyLoader können Sie Proxy nur für Nexus-Host einrichten. Zusätzlich, wenn Sie möchten, dass Sie Verbindungen zur Datenbank über einen anderen Proxy passieren kann.

Manchmal möchte man andere <proxy></proxy> Tags hinzufügen muß, und geben Sie die https in dem Protokoll tags: <protocol>https</protocol>

Die obigen Buchungen geholfen mein Problem bei der Lösung. Zusätzlich zu dem oben musste ich die folgenden Änderungen vornehmen, damit es funktioniert:

  • Modifizierte Maven JRE Netto-Einstellungen (\ jre \ lib \ net.properties) System-Proxy-Einstellung zu verwenden.

    https.proxyHost=proxy DNS
    https.proxyPort=proxy port
    
  • inklusive Proxy-Server-Einstellungen in settings.xml. Ich habe nicht bieten Benutzername und Passwort-Einstellungen als NTLM-Authentifizierung zu verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top