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.

5voto

sakhoshdel Punkte 101

Ich hatte für eine Weile das gleiche Problem und trotz mvn -U clean install wurde das Problem nicht gelöst!

Ich habe das Problem schließlich gelöst, indem ich den gesamten .m2-Ordner gelöscht und dann meine IDE neu gestartet habe und das Problem war verschwunden!

Manchmal entsteht das Problem aufgrund von Inkompatibilitäten oder Problemen in Ihrem lokalen Maven-Repository.

0 Stimmen

Versuchte, ein Maven-Resync offline durchzuführen, und habe IntelliJ komplett ruiniert. Habe deinem Rat gefolgt, .m2 gelöscht, und jetzt funktioniert es einwandfrei! Danke!

4voto

Toothless Seer Punkte 768

In Eclipse hatte ich kein Glück beim Aktualisieren. Ich musste mvn clean install -U verwenden (was alles gelöst hat).

4voto

Maverick Punkte 576

Verweis Maven Fehler "Übertragung fehlgeschlagen..."

find ~/.m2  -name "*.lastUpdated" -exec grep -q "Konnte nicht übertragen" {} \; -print -exec rm {} \;

3voto

Lu55 Punkte 19425

In unserem Fall trat der Fehler auf, weil die groupId falsch umbenannt wurde, während sich einige der Projekte in der Multimodul-Maven-Konfiguration auf andere bezogen.

Wir hatten ein Aggregator-Projekt (billing-parent) mit zwei Modulen (billing-api, billing):

com.company.team:billing-parent
|-com.company.team:billing-api
|-com.company.team:billing

Das Projekt billing hängt von billing-api ab. Also hatte es in seinem pom.xml folgendes:

    com.company.team
    billing-api
    ${project.version}

Wir beschlossen, die groupId von com.company.team auf com.company.team.billing umzubenennen. Wir ersetzten den alten Wert im Eltern-pom.xml und in den -Abschnitten beider Module. Aber vergaßen, die oben genannte Abhängigkeit zu aktualisieren. So hatten wir eine Konfiguration, in der das billing-Projekt auf das alte billing-api-Artefakt verwies. Letztendlich bricht der Build des billing-Moduls nach einiger Zeit mit dem Fehler ab:

[ERROR] Failed to execute goal on project billing: Could not resolve dependencies for project com.company.team.billing:billing:jar:3.5.1-SNAPSHOT: Failed to collect dependencies at com.company.team:billing-api:jar:3.5.1-SNAPSHOT: Failed to read artifact descriptor for com.company.team:billing-api:jar:3.5.1-SNAPSHOT: Failure to find

auch wenn das billing-api-Modul ohne Fehler erstellt wird.

Lösung 1: auch die groupId in der Abhängigkeit umbenennen.

Lösung 2: Ersetzen Sie die groupId durch die Eigenschaft ${project.groupId} wie folgt:

    ${project.groupId}
    billing-api
    ${project.version}

Schlussfolgerung. Also mein Rat, falls Sie auf den Fehler in der Multimodul-Konfiguration stoßen: Überprüfen Sie sorgfältig die groupId und artifactId der Abhängigkeiten auf benachbarten Modulen.

1voto

Dies hat mir geholfen:

Vom IDE (Red Hat CodeReady Studio in meinem Fall, aber @mavaddat-javid hat es in VS Code 1.77.0 bestätigt).

Windows -> Ansicht anzeigen -> Terminal -> Lokales Terminal öffnen/hinzufügen

Führen Sie die Befehle wie folgt aus >

$ cd /pom-dateipfad/

$ mvn -U clean install

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