Nexus: Konnte nicht finden, Artefakt
Vor kurzem habe ich migriert von Archiva zu Sonatype Nexus.
Ich versuche, Gläser von 3rd-party-repositories und Nexus nicht im cache es in das lokale repository.
Habe ich nach Antworten gesucht, die in diesem Abschnitt und konnte nicht eine Antwort auf die Frage.
Hier ist was ich getan habe...
Ich bin mit settings.xml :
<settings>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://THE_URL:8080/nexus/content/groups/public</url>
</mirror>
</mirrors>
<servers>
<server>
<id>admin</id>
<username>user</username>
<password>password</password>
</server>
</servers>
<profiles>
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
Habe ich auch erstellt proxy-repositories für alle 3rd-party-repositories, die ich verwende, und hat SIE AUF DEM NEXUS ÖFFENTLICHEN GRUPPE.
Weiter, ich habe den Befehl ausgeführt:
mvn clean install
und bekam die folgende Fehlermeldung:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building shlang 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://THE_URL:8080/nexus/content/groups/public/com/shadow/shadow/1/shadow-1.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.341s
[INFO] Finished at: Sun Jun 30 11:59:42 IDT 2013
[INFO] Final Memory: 6M/120M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project shlang: Could not resolve dependencies for project com.shadow:shlang:jar:1.0-SNAPSHOT: Failed to collect dependencies for [couchbase:couchbase-client:jar:1.1.5 (compile), com.google.code.gson:gson:pom:2.2.2 (compile), org.json:json:jar:20090211 (compile), net.sf.json-lib:json-lib:jar:jdk15:2.4 (compile), jline:jline:jar:2.10 (compile), commons-validator:commons-validator:jar:1.4.0 (compile), spy:spymemcached:jar:2.8.1 (compile), com.shadow:util:jar:1.0.1 (compile), com.shadow:monkey_schoolyard:jar:1.0.0 (compile)]: Failed to read artifact descriptor for com.shadow:util:jar:1.0.1: Could not find artifact com.shadow:shadow:pom:1 in nexus (http://THE_URL:8080/nexus/content/groups/public) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[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/DependencyResolutionException
Das Ergebnis in das lokale repo ist, dass es nicht enthalten jede der 3rd-party-jars sollte.
Was vermisse ich hier?
- Sie so konfiguriert haben, dass die "öffentlichen" repository-Gruppe als Spiegel des "*". Dies bedeutet, dass die goto-URL für alle Maven Artefakte. Können alle Artefakte, die Sie versuchen zum abrufen entnommen werden, dass die Gruppen-URL? Ich vermute, nicht.
- Sie schien zu fehlen, das repository für das Artefakt
couchbase-client
die nicht in Maven central. So ändern Sie die Konfiguration für Ihr öffentliches repository, das heißt, indem Sie das repository enthält die oben genannten Abhängigkeiten. - Möglich, Duplikat der Maven Konnte sich nicht lösen von Abhängigkeiten, Artefakte konnte nicht aufgelöst werden
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wahrscheinlich das lokale Maven-repository ist die Tatsache, dass die Komponente nicht gefunden werden kann zwischengespeichert. Sie können erzwingen, Maven, um zu überprüfen für Aktualisierungen von snapshot-Versionen und die Existenz von bisher nicht gefunden version mit der -U Option.
So laufen
Manchmal, wenn die Sache wirklich komisch, kann es helfen, um vollständig zu löschen die jeweiligen Ordner-Struktur in Ihrem lokalen repository. Also in deinem Beispiel
Wenn Manfred die Lösung bei Ihnen nicht funktioniert, dann das Problem mit dem Nexus versucht zu lösen das Artefakt.
Wenn Sie einen browser verwenden, können Sie überprüfen, was Nexus ist tatsächlich tun zu finden, das Artefakt sind Sie nach.
Anhängen ?beschreiben auf die url des Nexus repository mit dem Pfad des Artefakts.
E. g.
Nexus-Repository Öffentlichen Repositories, URL: http://my.nexus.server.address:8081/nexus/content/groups/public/
Holen das Artefakt
Pfad der oben genannten Artefakt wäre: org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar
So, dass die volle URL zu überprüfen
Dieser Prozess wird dann gehen Sie durch die Liste der konfigurierten Repositorys unter Ihren Öffentlichen Repositories-Gruppe in der Reihenfolge der repositories angegeben werden, die angibt, warum ein repository war nicht in der Lage, die geforderte Artefakt.
Meisten Gründe sind selbsterklärend und können ignoriert werden.
Einen Grund, dass vielleicht von Interesse ist, wenn der Fehler noch Cache als nicht gefunden repository abgerufen für ein repository.
Zeigt dies an, dass an einem gewissen Punkt Nexus hat versucht, um das Artefakt abrufen und scheiterte, um es zu suchen.
Dieser status scheint zwischengespeichert werden innerhalb von Nexus, so dass der Schnellste Weg, um den Zwischenspeicher zu leeren, ist Neustart Nexus.
Wenn alle Stricke reißen, stellen Sie sicher, dass Ihre pom-und XML-tags sind sauber unsichtbarer Zeichen (strip special chars kopieren von einer standard-Quelle wie mvnrepository.com erneut manuell, was auch immer).
Hatte ich eine knifflige unsichtbaren Charakter verdirbt mein nexus lookup (nur aus dem maven-build) und verbrachten ein peinliche Menge an Zeit, Debuggen, da alles andere, was ich ausprobiert funktioniert gut.
Hier war mein Beispiel (offenbart durch den http://www.nousphere.net/cleanspecial.php):
Sehen, dass junk-verstecken vor der version?