330 Stimmen

Maven: Fehler beim Lesen des Artefakt-Deskriptors

Ich hoffe, dass mir jemand bei einem Problem helfen kann, mit dem ich zu kämpfen habe.

Wenn ich versuche, mein Projekt aus dem Terminal zu erstellen, erhalte ich diesen Fehler:

Fehler beim Lesen des Artefakt-Deskriptors für com.morrislgn.merchandising.common:test-data-utils:jar:0.3b-SNAPSHOT: Konnte das Artefakt com.morrislgn.merchandising:merchandising:pom:0.3b-SNAPSHOT nicht finden

Das common.test-data-utils Jar wird von einem separaten Projekt erstellt und zwischen diesem und einem anderen Projekt geteilt (das andere Projekt wird auch nicht kompiliert, aber das liegt an einem anderen Problem).

Ich kann com.morrislgn.merchandising.common:test-data-utils ohne Probleme erstellen, ich sehe den Eintrag, den es im .m2 lokalen Repository auf meinem Rechner macht. Ich habe auch mein Repository in Eclipse neu indiziert.

Das POM für mein Projekt hat diesen Eintrag:

    com.morrislgn.merchandising.common
    test-data-utils
    0.3b-SNAPSHOT

Was für mich korrekt aussieht - das POM meldet auch keine Fehler, wenn es in Eclipse angezeigt wird.

Kann mir jemand sagen, was ich hier übersehe oder falsch mache?

5 Stimmen

Wenn jemand (wie ich) aufgrund eines HTTP-Repository-Fehlers in Maven> 3.8.1 auf ein Problem stößt, ähnlich wie maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories: , siehe hier: stackoverflow.com/q/67001968/6346531

0 Stimmen

@aksh1618 Danke. Das war die Lösung für mein Problem.

220voto

Gal Bracha Punkte 16362

Sie können es immer mit mvn -U clean install versuchen

-U erzwingt eine Überprüfung auf aktualisierte Releases und Snapshots in entfernten Repositories.

51 Stimmen

@MrPhi: Wenn Sie das m2e-Plugin haben, können Sie Maven -> "Projekt aktualisieren..." verwenden. Im nächsten Dialogfeld gibt es die Option, Updates von Snapshots und Releases zu erzwingen.

1 Stimmen

@AaronDigulla Es ist dieses Dialogfeld, das bei mir den Fehler verursacht.

2 Stimmen

Um dies zu ermöglichen, sollten Sie den Befehl ausführen, während Sie sich im Stammverzeichnis Ihres Projekts befinden

177voto

Ben Zuill-Smith Punkte 3259

Dieses Problem kann auftreten, wenn Sie einige Unterprojekte haben, die auf ein Eltern-POM verweisen und Sie nicht vom Verzeichnis des Eltern-POM installiert haben (führen Sie mvn install vom Elternverzeichnis aus). Eines der Unterprojekte kann von einem Geschwisterprojekt abhängen und wenn es versucht, das POM des Geschwisterprojekts zu lesen, wird es mit dem im Frage genannten Fehler fehlschlagen, es sei denn, Sie haben mindestens einmal aus dem Verzeichnis des Eltern-POM installiert.

Ich bin gerade auf dieses Problem gestoßen, als ich ein Projekt auf einen neuen Computer verschoben habe. Ich war es gewohnt, Befehle aus dem Unterprojekt auszuführen und habe nicht installiert im Elternprojekt.

16 Stimmen

Darüber hinaus können Sie bei Ausführung von mvn install im übergeordneten Modul auch -N für den nicht-rekursiven Betrieb hinzufügen. Dadurch überspringt Maven alle Module (einschließlich des fehlerhaften) und führt lediglich das install-Ziel für das übergeordnete Modul aus.

0 Stimmen

@JacekPrucia gut zu wissen, dass auch ein Pom-Artefakt installiert werden muss (wenn Ihr Elternteil ein Pom ist)

0 Stimmen

@bzuillsmith warum müssten Sie mvn install im übergeordneten POM ausführen? Würde dies nicht nur verwendet, damit die Geschwisterabhängigkeit heruntergeladen werden kann? Wenn Sie zufällig zum Geschwisterverzeichnis gegangen sind und von dort aus mvn install ausgeführt haben, damit das JAR in Ihrem lokalen Repository ist, erledigt dies dann nicht genau dasselbe?

142voto

prime Punkte 12730

Hatte das gleiche Problem mit IntelliJ IDEA und Folgendes hat funktioniert.

  • Gehen Sie zu Datei
  • Wählen Sie Einstellungen
  • Wählen Sie Build, Ausführung, Bereitstellung
  • Wählen Sie Build-Tools aus der Dropdown-Liste
  • Wählen Sie Maven aus der Dropdown-Liste
  • Aktivieren Sie das Kontrollkästchen Immer Snapshots aktualisieren

Screenshot von IntelliJ 2017.2 > Einstellungen > Build, Ausführung, Bereitstellung > Build-Tools > Maven > Immer Snapshots aktualisieren (Kontrollkästchen)

1 Stimmen

Dies hat für mich funktioniert, aber ich verstehe nicht warum - Ich habe versucht, es von der Befehlszeile aus zu erstellen. Gab es etwas im IntelliJ zwischengespeichert?

0 Stimmen

Hat auch bei mir funktioniert! Kann nicht glauben, wie frustrierend das war. Danke!

1 Stimmen

@goodOldFashioned: Dieses "immer aktualisieren" hat die ....lastUpdated-Datei des lokalen Repositories überschrieben. -U macht dasselbe von der Befehlszeile aus. Also hat IntelliJ Ihr lokales Repo repariert und dann hat die Befehlszeile wieder funktioniert.

57voto

IamVickyAV Punkte 1395

Wenn Sie Eclipse verwenden, klicken Sie mit der rechten Maustaste auf Ihr Projekt -> Maven -> Projekt aktualisieren. Es wird ein Dialogfeld zum Aktualisieren des Maven-Projekts geöffnet.

In diesem Dialogfeld aktivieren Sie das Kontrollkästchen Force Update von Snapshots/Releases und klicken Sie auf OK. (Bitte beachten Sie das Bild unten)

Dialogfeld zum Aktualisieren des Maven-Projekts

Dies hat bei mir funktioniert!

40voto

tharindu_DG Punkte 8082

Wenn Sie Eclipse verwenden:

  • Klicken Sie mit der rechten Maustaste auf das Projekt > Eigenschaften > Maven

  • Stellen Sie sicher, dass Auflösen von Abhängigkeiten aus Workspace-Projekten nicht angeklickt ist.

4 Stimmen

Es funktioniert für mich. Aber ich verstehe nicht warum? Gibt es eine Erklärung dafür?

1 Stimmen

Dies hat anfangs für mich nicht funktioniert, es fehlten zunächst 12 Anstandsregeln, nachdem dies gemacht wurde, sind es jetzt 74.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X