it-swarm.com.de

Maven: Fehler beim Lesen des Artefaktdeskriptors

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

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

Failed to read artifact descriptor for com.morrislgn.merchandising.common:test-data-utils:jar:0.3b-SNAPSHOT: Could not find artifact com.morrislgn.merchandising:merchandising:pom:0.3b-SNAPSHOT

Die common.test-data-utils-Dose wird von einem separaten Projekt erstellt und von diesem und einem anderen Projekt gemeinsam genutzt (das andere Projekt wird auch nicht erstellt, was jedoch auf ein anderes Problem zurückzuführen ist). 

Ich kann com.morrislgn.merchandising.common:test-data-utils ohne Problem erstellen, ich kann den Eintrag sehen, den er im lokalen .m2-Repository auf meinem Computer vornimmt. Ich habe mein Repository auch in Eclipse neu indexiert. 

Das POM für mein Projekt hat folgenden Eintrag:

<dependency>
    <groupId>com.morrislgn.merchandising.common</groupId>
    <artifactId>test-data-utils</artifactId>
    <version>0.3b-SNAPSHOT</version>
</dependency>

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

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

193
Morrislgn

Sie können immer mvn -U clean install versuchen

-U erzwingt eine Prüfung auf aktualisierte Versionen und Momentaufnahmen in Remote-Repositorys.

132
Gal Bracha

Dieses Problem kann auftreten, wenn Sie über untergeordnete Projekte verfügen, die auf ein übergeordnetes Pom verweisen und nicht über das übergeordnete Pom-Verzeichnis installiert wurden (führen Sie mvn install aus dem übergeordneten Verzeichnis aus). Eines der untergeordneten Projekte kann von einem Geschwisterprojekt abhängen. Wenn das Pom des Geschwisters gelesen wird, schlägt der Fehler mit dem in der Frage genannten Fehler fehl, sofern Sie nicht mindestens einmal im übergeordneten Pom-Verzeichnis installiert haben.

Ich bin gerade auf dieses Problem gestoßen, als ich ein Projekt auf einen neuen Computer verschoben habe. Ich hatte die Gewohnheit, Befehle aus dem untergeordneten Projekt auszuführen, und installierte nicht auf dem übergeordneten Element.

111
bzuillsmith

Hatte das gleiche Problem mit IntelliJ IDEA und folgenden. 

  • Gehe zu File
  • Settings auswählen
  • Build, Execution, Deployments auswählen
  • Wählen Sie Build Tools aus dem Dropdown-Menü
  • Wählen Sie Maven aus dem Dropdown-Menü
  • Aktivieren Sie das Kontrollkästchen Always update snapshots

 screen shot of IntelliJ 2017.2 > Preferences/Settings > Build, Execution, Deployment > Build Tools > Maven > Always update snapshots (checkbox)

61
prime

Wenn Sie Eclipse verwenden, Klicken Sie mit der rechten Maustaste auf Projekt -> Eigenschaften -> Maven und vergewissern Sie sich, dass "Abhängigkeiten von Arbeitsbereichsprojekten auflösen" nicht angeklickt ist.

Hoffe das hilft.

35
tharindu_DG

Wenn Sie Eclipse verwenden, Rechtsklick auf Ihr Projekt -> Maven -> Update-Projekt. Das Dialogfeld Update Maven-Projekt wird geöffnet. 

Aktivieren Sie in diesem Dialogfeld Aktualisieren von Snapshots/Releases erzwingen Kontrollkästchen und klicken Sie auf OK. (Siehe Bild unten)

 Update Maven Project Dialog Box

Das hat für mich funktioniert! 

25
IamVickyAV

Ich weiß, ich bin ziemlich spät im Gespräch, aber ich hatte auch dieses Problem. Ich denke, das Problem war die Firewall meines Unternehmens. Meine Lösung bestand darin, den Netzstecker zu ziehen, eine Verbindung zu unserem offenen WLAN herzustellen und dann ein Update über Eclipse zu erzwingen. Dies löste alles.

19
rrs

Ich hatte das gleiche Problem mit Eclipse, wo die Maven Build-Befehlszeile einwandfrei funktionierte, ABER. Versuchen Sie dies

  • gehen Sie in .m2/repository und löschen Sie das zugehörige Verzeichnis
  • führen Sie Update-Maven-Abhängigkeiten in Eclipse aus

Der Fehler verschwindet ... warum meine mvn-Befehlszeile mit diesen Verzeichnissen funktionierte und Eclipse .m2Eclipse nicht konnte, ich habe keine Ahnung und es nervt irgendwie. Mein Projekt arbeitet jetzt wieder in Eclipse. 

11
Dean Hiller

Ich löste dieses Problem, indem ich in den Repository-Ordnern löschte, in denen dieser Fehler mit Ausnahme der JAR- und POM-Dateien angezeigt wurde.

9
17sprints

"Fehler beim Lesen des Artefaktdeskriptors" weisen im Allgemeinen auf ein Problem mit der Pom-Datei der Abhängigkeit im Maven-Repository hin. Ich würde vorschlagen, dass Sie überprüfen, ob der Name der POM-Datei mit dem Namen, den Maven erwartet, identisch ist, und ob der Inhalt der POM-Datei gültig ist. 

6
eaykin

Ich hatte das gleiche Problem mit IntelliJ. Ich löste mit Rechtsklick auf pom.xml> Maven> Reimport

4
rlopezo

Ich habe ein Projekt 

 A/
 |--a1
 |--a2

Nun gibt es ein anderes Projekt in unserer Organisation

 B/
 |--b1
 |--b2
 |--b3

(Jedes Modul a1, b1 usw. und die übergeordneten Projekte A, B haben ihre eigenen pom.xml gemäß den Standardregeln für Eltern und Kinder.)

Beide Projekte werden auf meiner lokalen Eclipse (von SVN) ausgecheckt. Ich arbeite aktiv an A. 

Ich erfuhr, dass es eine gute allgemeine Funktionalität (b4) gibt, die in B entwickelt wurde, und ich musste sie verwenden. 

 B/
 |--b1
 |--b2
 |--b3
 |--b4 (NEW)

Entwickler von b4 haben dieses b4-Modul als Artefakt im Repository unserer Organisation bereitgestellt. Ich habe die Abhängigkeit zum POM meines Moduls aufgenommen, d. H. Pom.xml von a2. Eclipse hat das benötigte Artefakt aus dem Repo heruntergeladen und ich konnte die darin enthaltenen Klassen importieren.

Nun beginnt die Ausgabe ... Ich musste den Quellcode von b4 zu einem bestimmten Zweck überprüfen und da ich B bereits auf meinem lokalen Eclipse ausgecheckt hatte, habe ich ihn von SVN aktualisiert und das Modul b4 ausgecheckt. Ich habe auch pom.xml von Modul b4 mit Zielen wie clean, package usw. ausgeführt .. Nach einiger Zeit, als ich mit der Codierung fertig war, musste ich eine JAR von Modul a2 erstellen. Ich habe "package" auf a2's pom.xml und BAM ausgeführt !! Fehler n Fehler für a2-Modul .. Diese Fehler waren auch nicht sehr benutzerfreundlich. Das einzige, was es gibt, ist der Name von b4 in Logs.

Lösung: Nachdem ich viele Stunden lang nach vielen Lösungen gesucht hatte, führte ich "mvn -U clean install" von der Konsole in der Projekt-Direktion meines B aus (d. H. In ../codebase/B). Da B das übergeordnete Element ist, wurde der Clean-Install-Befehl für alle Module einschließlich b4 ausgeführt und erfolgreich ausgeführt. Danach habe ich "mvn -U clean install" für mein übergeordnetes Projekt ausgeführt, nämlich A. Und das hat funktioniert! a2-Modul wurde erfolgreich kompiliert, installiert (später verpackt).

Ein wichtiger Punkt war, wenn sich b4 in Ihrem Arbeitsbereich befindet, installieren Sie nicht nur b4. Sie müssen vollständig B neu installieren. Ich kam zu dieser Lösung, nachdem ich die Antwort von Zuill gelesen hatte.

EDIT: Noch etwas zu beachten: Wenn ich kein B-Projekt in der lokalen Umgebung ausgecheckt hätte, wäre dieses Problem möglicherweise nicht für mich aufgetreten. Ich neige dazu zu denken, dass dies passiert ist, weil ich B in meinem lokalen Arbeitsbereich ausgecheckt hatte.

4
simpleDev

Sie erwähnen zwei verschiedene groupIds, com.morrislgn.merchandising.common und com.johnlewis.jec.webpim.common. Vielleicht ist das das Problem.

3
phlogratos

Hatte kein Glück beim Update über Eclipse. Musste mvn clean install -U verwenden (was alles löste).

3
Toothless Seer

Referenz Maven-Fehler "Fehler beim Übertragen ..."

find ~/.m2  -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;
3
Maverick

Bei mir ging es darum, die "User Setting.xml" innen zu setzen 

Window > preferences > Maven > User Settings > and then browsing to the user Settings inside the { maven unarchived directory / }/Apache-maven-2.2.1/conf/settings.xml . 
3

Für mich scheint es tatsächlich ein Problem mit dem Abhängigkeits-POM gewesen zu sein.

Ich habe das Problem mit dem virtuellen Repository jitpack gelöst, mit dem Sie Github-Repositorys basierend auf ihrer URL anstelle des eigenen POMs einfügen können (was in meinem Fall falsch war).

    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
2
Phil Rykoff

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

Ich löste schließlich das Problem, indem ich den gesamten .m2-Ordner löschte und dann meine IDE neu startete.

Daher kann es manchmal zu Inkompatibilitäten oder Problemen in Ihrem lokalen Repository für Maven kommen.

2
sakhoshdel

In unserem Fall trat der Fehler auf, weil GroupId nicht ordnungsgemäß umbenannt wurde, während einige Projekte in der Maven-Konfiguration mit mehreren Modulen auf andere verweisen.

Wir hatten ein Aggregatorprojekt (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. So hatte es in seinem pom.xml:

<dependency>
    <groupId>com.company.team</groupId>
    <artifactId>billing-api</artifactId>
    <version>${project.version}</version>
</dependency>

Wir haben uns entschieden, groupId von com.company.team in com.company.team.billing umzubenennen. Wir haben den alten Wert in den pom.xml- und <parent>-Abschnitten beider Elternteile ersetzt. Aber vergessen, die Abhängigkeit oben zu aktualisieren. Wir hatten also eine Konfiguration, in der billing das alte Artefakt billing-api referenziert. Irgendwann schlägt der Bau des billing-Moduls nach einiger Zeit mit dem Fehler wie

[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 <parent of the com.company.team:billing-parent project which is not available any more>  

trotz der Tatsache, dass billing-api Modul fehlerfrei baut.

Lösung 1: Benennen Sie groupId ebenfalls in dependency um.

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

<dependency>
    <groupId>${project.groupId}</groupId>
    <artifactId>billing-api</artifactId>
    <version>${project.version}</version>
</dependency>

Fazit. Mein Ratschlag für den Fall, dass Sie mit dem Fehler in der Multimodulkonfiguration konfrontiert sind, wäre: Überprüfen Sie groupId und artifactId sorgfältig die Abhängigkeiten von Nachbarmodulen.

1
Lu55

Ich hatte ein ähnliches Problem. In meinem Fall war die Version von testng in meinem Ordner .m2/repositories beschädigt, aber als ich sie löschte und wieder ein Maven-Update durchführte, funktionierte alles gut.

1
William

gehe zu deinem Arbeitsbereichspfad und gehe in deinen Projektordner

führen Sie den folgenden Befehl aus

mvn -U Neuinstallation

wenn Sie Massege ähnlich wie sehen:

Abhängigkeiten für Projekt konnten nicht aufgelöst werden: war: 0.0.1-SNAPSHOT: Sammeln von Abhängigkeiten bei com.Sun.jersey: jersey-server: jar: 1.9 fehlgeschlagen

Dann gib folgenden Befehl ein:

export MAVEN_OPTS = -Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2

Dann wieder Befehl geben

mvn -U Neuinstallation

Jetzt können Sie sehen, Fehler ist weg !!

Jetzt säubern und maven Projekt bauen.

0
Abhijeet Kale

Dieser Fehler besagt im Wesentlichen, dass Maven eine bestimmte Abhängigkeit aus dem lokalen Repository nicht lesen konnte. Es könnte passieren, dass eine JAR-Datei nicht richtig heruntergeladen wurde. Gehen Sie zu Ihrem lokalen Repository für Maven und stellen Sie sicher, dass es keine .lastUpdated -Erweiterungsdatei gibt.

0
Sandoval0992

Ich habe gerade erst mit STS Eclipse angefangen, als ich Maven zum ersten Mal benutzt habe. Das Projekt, das ich eingerichtet habe, hatte bereits eine eigene settings.xml. Wenn dies der Fall ist, müssen Sie die Datei settings.xml in der Laufkonfiguration aktualisieren.

  1. klicken Sie mit der rechten Maustaste auf die Datei pom.xml und auf "Ausführen als" -> "Konfigurationen ausführen ...".

  2. wenn dort "Benutzereinstellungen" angezeigt wird, klicken Sie auf die Schaltfläche "Datei" und fügen Sie die Datei "settings.xml" hinzu.

  3. Ich denke, das ist spezifisch für Ihr Projekt, aber meine "Ziele" sind auf "Neuinstallation" eingestellt und ich habe nach "Tests überspringen" gesucht.

0
Jose Peralez

Ich hatte dieses Problem in Eclipse, mvn -U clean install hat nicht funktioniert, aber mit der rechten Maustaste auf das Projekt geklickt und Maven-> Projekt aktualisieren ausgewählt, wurde es behoben.

0
gary69