2016-03-23 8 views
0

Für einige Projekte scheint maven Probleme beim Erstellen der richtigen URL zu haben.Wo bekommt Maven die URL, die es verwendet, um Poms herunterzuladen

ich den Fehler bin immer:

fehlgeschlagen Ziel auf Projekt-Test auszuführen: Es kann keine Abhängigkeiten für Projekt com.oldcurmudgeon lösen: Test: jar: 1,0: Fehler für Abhängigkeiten sammeln [..., com.google.guava: guava: jar: 15.0 (kompilieren), commons-collections: commons-collections: jar: 3.2.1 ...]: Fehler beim Lesen des Artefakt-Deskriptors für org.slf4j: jul-to-slf4j: jar : 1.7.14: Artefakt konnte nicht übertragen werden org.slf4j: jul-zu-slf4j: pom: 1.7.14 von/zu uk.maven.org (http://uk.maven.org/maven2): Verbinden mit de.maven.org:80[uk .maven.org/23.235.43.209] fehlgeschlagen: Connection timed out: connect -> [Hilfe 1]

Ich verstehe nicht, wo die 23.235.43.209 herkommt? Ist es in der Konfiguration oder so? Einige pom.xml oder settings.xml?

I kann zu http://uk.maven.org/maven2 in Ordnung gehen.

I kann zu uk.maven.org:80 gehen fein.

I KANN NICHT zu uk.maven.org/23.235.43.209 durchsuchen.

Die IP-Adresse ist eindeutig das Problem, aber was kann ich tun, um herauszufinden, woher diese IP kommt?

Added

Die settings.xml im .m2 Ordner (wie durch @KoustavRay erwähnt) lautet:

... 
    <profiles> 
    <profile> 
     <id>Repositories</id> 
     <repositories> 
     <repository> 
      <id>central</id> 
      <name>Maven.org Repository for Maven</name> 
      <url>http://repo1.maven.org/maven2/</url> 
     </repository> 
     <repository> 
      <id>apache</id> 
      <name>Maven.org Repository for Apache</name> 
      <url>http://repo.maven.apache.org/maven2/</url> 
     </repository> 
     <repository> 
      <id>java.net</id> 
      <name>Java.net Repository for Maven</name> 
      <url>http://download.java.net/maven/2/</url> 
     </repository> 
     </repositories> 
    </profile> 
    ... 

So nicht erwähnt es der seltsame IP-Adresse. Es stellt sich heraus, dass das dritte ein bisschen zweifelhaft ist - es ist seitdem verschoben. Durch das Entfernen dieses Eintrags wird das Problem jedoch nicht gelöst.

Auch der mirrors Abschnitt:

<mirror> 
    <mirrorOf>central</mirrorOf> 
    <name>UK Mirror for maven.org</name> 
    <url>http://uk.maven.org/maven2</url> 
    <id>uk.maven.org</id> 
</mirror> 
+0

"Maven wird standardmäßig aus dem zentralen Repository herunterladen" - https://maven.apache.org/guides/introduction/introduction-to-repositories.html –

+1

können Sie 'mvn help: effective-settings' ausführen und 'mvn help: effective-pom' von Ihrem Projekt und überprüfen Sie die Ausgabe dieser beiden Befehle? (Hinweis: Ausgabe wäre ausführlich, besser in Datei umleiten). Dort sollten Sie erkennen, woher dieses Repository kommt –

+0

@ A.DiMatteo - Ich verwende normalerweise keine Befehlszeile, so dass ich vielleicht falsch gegangen bin, aber alle diese zu tun schien, war zu versuchen (und scheitern), das Projekt zu bauen. Die Verwendung von '--help:' scheint ebenfalls nicht zu funktionieren. – OldCurmudgeon

Antwort

2

[uk.maven.org/23.235.43.209] kein URL ist, gehe ich davon aus, es ist eine ausführliche Ausgabe Probleme zu finden Netzwerk zu helfen.

23.235.43.209ist die IP von uk.maven.org:

C:\Users\hinneLinks>nslookup uk.maven.org 
Server: fritz 
Address: 10.2.1.13 

Nicht autorisierende Antwort: 
Name: sonatype.map.fastly.net 
Address: 23.235.43.209 
Aliases: uk.maven.org 
      central.maven.org 
+0

Für jene später kommen ich dies als die markiert antworte, weil es mich zur Antwort geführt hat. Die Antwort, die ich fand, war '' Dhttp.proxyHost = our.proxy.com -Dhttp.proxyPort = 80' zu den 'Maven' Optionen in Netbeans hinzuzufügen. – OldCurmudgeon

+0

@OldCurmudgeon Berücksichtigen Sie dann die Konfiguration eines Proxy in den Maven-Einstellungen: https://maven.apache.org/guides/mini/guide-proxies.html – Tunaki

1

Editiert:

Antwort zur Frage: Die Definition von central ist in der Maven Super POM, den Teil der Maven-Installation ist. Sie können dieses Repository spiegeln, wenn Sie Ihre Maven-Installation auf ein anderes zentrales Repository verweisen möchten.

Lösung: Es ist möglich, dass Sie aufgrund mehrerer Probleme nicht verbinden können. Es gibt jedoch mehrere offizielle Central Repositories geografisch verteilt. Sie können Änderungen an der Datei settings.xml (in der Datei $ {user.home} /. M2/settings.xml) vornehmen, um einen oder mehrere Spiegelserver zu verwenden. Anweisungen hierzu finden Sie in der Anleitung Using Mirrors for Repositories. Ein Beispiel:

<settings> 
    ... 
    <mirrors> 
    <mirror> 
     <id>UK</id> 
     <name>UK Central</name> 
     <url>http://uk.maven.org/maven2</url> 
     <mirrorOf>central</mirrorOf> 
    </mirror> 
    <mirror> 
     <id>planetmirror.com</id> 
     <name>PlanetMirror Australia</name> 
     <url>http://downloads.planetmirror.com/pub/maven2</url> 
     <mirrorOf>central</mirrorOf> 
    </mirror> 
    </mirrors> 
    ... 
</settings> 
+1

Die Datei settings.xml im conf der Installation heißt system settings.xml, während die Datei $ HOME/.m2/settings.xml die Datei user settings.xml heißt. Normalerweise sollten Sie das System settings.xml nicht nur den Benutzer settings.xml ändern (Das System settings.xml existierte auch in Maven 2) – khmarbaise

+0

Fair genug..danke für diesen Eingang. –

+1

Was bedeutet "Ans:" und "Soln:" in deiner Antwort? –

0

Wenn Sie ein Maven-Projekt, die pom.xml-Datei analysiert werden bauen, wenn es die log4j Maven koordinieren sehen, dann suchen Maven die log4j Bibliothek In dieser Reihenfolge:

Log4j im lokalen Maven-Repository suchen. Suchen Sie log4j in Maven Central Repository. Log4j im entfernten Maven-Repository suchen (falls in pom.xml definiert). Diese Maven-Abhängigkeitsbibliotheksverwaltung ist ein sehr nettes Werkzeug und erspart Ihnen eine Menge Arbeit. Es gibt mehrere offizielle zentrale Repositories, die geografisch verteilt sind. Sie können Änderungen an Ihrer settings.xml vornehmen. Derzeit befindet sich das zentrale mavenSW-Repository unter . Sie finden diese URL in der Datei super pom.xml unter maven-2.0.8-uber.jar unter org/apache/maven/project/pom-4.0.0.xml.

Manchmal kann es nützlich sein, einen öffentlichen Spiegel des zentralen Repository zu verwenden. In den seltenen Fällen, in denen das zentrale Repository inaktiv ist, können Sie beispielsweise angeben, dass eine Spiegelung des Repositorys und nicht das zentrale Repository verwendet werden soll. Wenn ein geografisch naher Spiegel vorhanden ist, kann außerdem die Verwendung eines öffentlichen Spiegels Zeit sparen. Eine Liste von mehreren Spiegeln existiert unter http://maven.apache.org/guides/mini/guide-mirror-settings.html.