Ich hoffe, jemand kann mir bei einem Problem helfen, mit dem ich zu kämpfen habe.
Wenn ich versuche, mein Projekt vom Terminal aus zu erstellen, wird folgende Fehlermeldung angezeigt:
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
Das common.test-data-utils
JAR wird von einem separaten Projekt erstellt und zwischen diesem und einem anderen Projekt geteilt (das andere Projekt wird ebenfalls nicht erstellt, aber das liegt an einem anderen Problem).
Ich kann com.morrislgn.merchandising.common:test-data-utils
ohne Probleme erstellen . Ich kann den Eintrag im .m2
lokalen Repository auf meinem Computer sehen. Ich habe mein Repository auch in Eclipse neu indiziert.
Das POM für mein Projekt hat diesen Eintrag:
<dependency>
<groupId>com.morrislgn.merchandising.common</groupId>
<artifactId>test-data-utils</artifactId>
<version>0.3b-SNAPSHOT</version>
</dependency>
Was mir 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?
quelle
~/.m2/setting.xml
zuerst zu Ihrem Spiegelabschnitt hinzufügen und dann nach dem Ausführenmvn -U clean install
Folgendes sicherstellenReimport
(Rechtsklick auf das Projekt, dann befindet sich unter dem unterenMaven
Bereich eineReimport
Schaltfläche ).Dieses Problem kann auftreten, wenn Sie einige untergeordnete Projekte haben, die auf einen übergeordneten POM verweisen, und Sie nicht über das übergeordnete POM-Verzeichnis installiert haben (über das übergeordnete Verzeichnis ausführen
mvn install
). Eines der untergeordneten Projekte hängt möglicherweise von einem Geschwisterprojekt ab. Wenn es das POM des Geschwisters liest, schlägt es mit dem in der Frage genannten Fehler fehl, es sei denn, Sie haben mindestens einmal aus dem übergeordneten POM-Verzeichnis installiert.Ich bin gerade auf dieses Problem gestoßen, als ich ein Projekt auf einen neuen Computer verschoben habe. Ich hatte die Angewohnheit, Befehle aus dem untergeordneten Projekt auszuführen und install nicht auf dem übergeordneten Projekt auszuführen.
quelle
mvn install
auf einem übergeordneten Element ausgeführt werden, können Sie außerdem eine-N
nicht rekursive Operation hinzufügen . Dies führt dazu, dass maven alle Module überspringt (einschließlich eines Moduls, das fehlschlägt) und nur dasinstall
Ziel für das übergeordnete Modul erreicht .mvn install
im übergeordneten pom laufen müssen . Würde dies nicht nur verwendet, damit die Geschwisterabhängigkeit heruntergeladen werden kann? Wenn Sie zufällig in das Geschwisterverzeichnis gegangen sind undmvn install
von dort aus gelaufen sind, sodass sich das JAR in Ihrem lokalen Repository befindet, führt dies nicht genau das Gleiche aus?Hatte das gleiche Problem mit IntelliJ IDEA und folgenden funktioniert.
File
Settings
Build, Execution, Deployments
Build Tools
aus der Dropdown-ListeMaven
aus der Dropdown-ListeAlways update snapshots
Kontrollkästchenquelle
Wenn Sie Eclipse verwenden, klicken Sie mit der rechten Maustaste auf Ihr Projekt -> Maven -> Projekt aktualisieren . Das Dialogfeld Update Maven Project wird geöffnet.
Aktivieren Sie in diesem Dialogfeld das Kontrollkästchen Aktualisierung von Snapshots / Releases erzwingen und klicken Sie auf OK . (Bitte siehe Bild unten)
Das hat bei mir funktioniert!
quelle
Wenn Sie Eclipse verwenden, klicken Sie mit der rechten Maustaste auf Projekt -> Eigenschaften -> Maven und stellen Sie sicher, dass nicht auf " Abhängigkeiten von Arbeitsbereichsprojekten auflösen " geklickt wird.
Hoffe das hilft.
quelle
Ich weiß, dass ich ziemlich spät zum Gespräch komme, aber ich hatte auch dieses Problem. Ich denke, das Problem war die Firewall meines Unternehmens. Meine Lösung bestand darin, den Netzstecker aus dem Netzwerk zu ziehen, eine Verbindung zu unserem offenen WLAN herzustellen und dann ein Update über Eclipse zu erzwingen. Dies löste alles.
quelle
Ich hatte das gleiche Problem mit Eclipse, bei dem die Maven Build-Befehlszeile einwandfrei funktionierte, ABER versuchen Sie dies
Der Fehler verschwindet ... warum meine mvn-Befehlszeile mit diesen Verzeichnissen funktioniert hat und Eclipse .m2eclipse nicht konnte, ich habe keine Ahnung und es ist irgendwie scheiße. Mein Projekt arbeitet jetzt wieder in Eclipse.
quelle
mvn clean install
funktioniertenIch hatte das gleiche Problem mit IntelliJ. Ich habe mit einem Rechtsklick auf pom.xml> Maven> Reimport gelöst
quelle
Ich habe dieses Problem gelöst, indem ich in den Repository-Ordnern, in denen dieser Fehler angezeigt wurde, alles außer den JAR- und POM-Dateien gelöscht habe.
quelle
Probleme beim "Lesen des Artefaktdeskriptors fehlgeschlagen" weisen im Allgemeinen auf ein Problem mit der POM-Datei der Abhängigkeit im Maven-Repository hin. Ich würde Ihnen empfehlen, zu überprüfen, ob der Name der POM-Datei mit dem Namen übereinstimmt, den Maven erwartet, und zu überprüfen, ob der Inhalt der POM-Datei gültig ist.
quelle
Für mich war es mit dem Einstellen der "User Setting.xml" im Inneren verbunden
quelle
Ich habe ein Projekt
Jetzt gibt es ein anderes Projekt in unserer Organisation
(Jedes Modul a1, b1 usw. und übergeordnete Projekte A, B haben ihre eigene pom.xml gemäß den Standardregeln für Eltern und Kind.)
Beide Projekte werden auf meiner lokalen Eclipse (von SVN) ausgecheckt. Ich arbeite aktiv an A.
Ich habe erfahren, dass in B eine gute gemeinsame Funktionalität (b4) entwickelt wurde, die ich verwenden musste.
Entwickler von b4 haben dieses b4-Modul als Artefakt im Repository unserer Organisation bereitgestellt. Ich habe die Abhängigkeit zum POM meines Moduls aufgenommen, dh zur pom.xml von a2. Eclipse hat das erforderliche Artefakt von Repo heruntergeladen und ich konnte die Klassen darin importieren.
Jetzt beginnt das Problem ... Ich musste den Quellcode von b4 aus irgendeinem Grund überprüfen und da ich B bereits auf meiner 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 meine Codierung abgeschlossen hatte, musste ich eine JAR meines Moduls a2 erstellen. Ich habe "package" auf a2s pom.xml und BAM ausgeführt !! Fehler n Fehler für a2 Modul .. Diese Fehler waren auch nicht sehr benutzerfreundlich. Das einzige ist, dass der Name von b4 sicher in den Protokollen war.
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 Projektverzeichnis meines B aus (dh in ../codebase/B). Da B das übergeordnete Element ist, wurde der Befehl zur sauberen Installation 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 A ausgeführt. Und das hat funktioniert! Das a2-Modul wurde erfolgreich kompiliert, installiert (später verpackt).
Hier war wichtiger Punkt, wenn b4 in Ihrem Arbeitsbereich ist, installieren Sie nicht nur b4. Sie müssen das vollständige B neu installieren. Ich bin auf diese Lösung gekommen, nachdem ich die Antwort von Zuill gelesen hatte
BEARBEITEN: Noch etwas zu beachten: Wenn ich das B-Projekt nicht in der lokalen Umgebung ausgecheckt hätte, wäre dieses Problem möglicherweise nicht bei mir aufgetreten. Ich neige dazu zu glauben, dass dies passiert ist, weil ich B in meinem lokalen Arbeitsbereich ausgecheckt habe.
quelle
Sie erwähnen zwei verschiedene Gruppen-IDs
com.morrislgn.merchandising.common
undcom.johnlewis.jec.webpim.common
. Vielleicht ist das das Problem.quelle
Referenz- Maven-Fehler "Übertragung fehlgeschlagen ..."
quelle
Ich hatte kein Glück, über Eclipse zu aktualisieren. Musste mvn clean install -U verwenden (was alles löste).
quelle
Für mich scheint es tatsächlich ein Problem mit der Abhängigkeit POM gewesen zu sein.
Ich habe es umgangen, indem ich das virtuelle Jitpack-Repository verwendet habe, mit dem Sie Github-Repositorys basierend auf ihrer URL anstelle ihres eigenen POM einschließen können (was in meinem Fall fehlerhaft zu sein scheint).
quelle
Ich hatte das gleiche Problem für eine Weile und trotzdem
mvn -U clean install
das Problem nicht gelöst!Ich habe das Problem endlich gelöst, indem ich das Ganze gelöscht habe
.m2
Ordner und dann meine IDE neu gestartet habe und das Problem war verschwunden!Manchmal trat das Problem aufgrund von Inkompatibilitäten oder Problemen in Ihrem lokalen Maven-Repository auf.
quelle
In unserem Fall trat der Fehler aufgrund der falschen Umbenennung der groupId auf, während einige der Projekte in der Maven-Konfiguration mit mehreren Modulen auf andere verweisen.
Wir hatten ein Aggregatorprojekt (
billing-parent
) mit zwei Modulen (billing-api
,billing
):Projekt
billing
hängt ab vonbilling-api
. Also in seiner hattepom.xml
es:Wir haben uns entschlossen, groupId von
com.company.team
in umzubenennencom.company.team.billing
. Wir haben den alten Wert in den übergeordnetenpom.xml
und in<parent>
Abschnitten beider Module ersetzt. Aber vergessen, die Abhängigkeit oben zu aktualisieren. Wir hatten also eine Konfiguration, in der dasbilling
Projekt auf altebilling-api
Artefakte verweist . Irgendwann schlägt es den Aufbau desbilling
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 erstellt wird.Lösung 1: Umbenennen
groupId
independency
als auch.Lösung 2: Ersetzen Sie
groupId
durch die${project.groupId}
Eigenschaft wie folgt:Fazit. Mein Rat für den Fall, dass Sie auf den Fehler bei der Konfiguration mit mehreren Modulen gestoßen sind, lautet also: Überprüfen Sie die Abhängigkeiten von Nachbarmodulen gründlich
groupId
und überprüfen Sie sieartifactId
.quelle
Navigieren Sie über die Shell in Ihrem Projektordner und führen Sie den folgenden Befehl aus:
Normalerweise sollte dies Ihr Problem bereits lösen.
Wenn Sie eine Nachricht wie diese sehen:
Führen Sie dann Folgendes aus:
gefolgt von:
erneut, um Ihre Abhängigkeiten endgültig zu aktualisieren.
Führen Sie anschließend einen sauberen Maven-Build durch:
quelle
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 erneut ein Maven-Update durchführte, funktionierte alles einwandfrei.
quelle
Ich hatte dieses Problem in Eclipse,
mvn -U clean install
funktionierte nicht, aber durch Klicken mit der rechten Maustaste auf das Projekt und Auswahl von Maven-> Projekt aktualisieren wurde es behoben.quelle
Ich habe gerade angefangen, STS Eclipse zum ersten Mal mit Maven zu verwenden. Das von mir eingerichtete Projekt hatte bereits eine eigene settings.xml. In diesem Fall möchten Sie Ihre Datei settings.xml in der Ausführungskonfiguration aktualisieren.
Klicken Sie mit der rechten Maustaste auf die Datei pom.xml und klicken Sie auf "Ausführen als" -> "Konfigurationen ausführen ...".
Dort steht "Benutzereinstellungen". Klicken Sie auf die Schaltfläche Datei und fügen Sie die Datei settings.xml hinzu.
Ich denke, dies ist spezifisch für Ihr Projekt, aber meine "Ziele" sind auf "Neuinstallation" eingestellt und ich habe "Tests überspringen" aktiviert.
quelle
Dieser Fehler besagt im Grunde, 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 also zu Ihrem lokalen Maven-Repository und stellen Sie sicher, dass keine .lastUpdated- Erweiterungsdatei vorhanden ist.
quelle
Das hat mir geholfen:
Aus der IDE (in meinem Fall Red Hat CodeReady Studio).
Windows -> Ansicht anzeigen -> Terminal -> Lokales Terminal öffnen / hinzufügen
Führen Sie die Befehle wie folgt aus>
$
cd /pom-file-path/
$
mvn -U clean install
quelle
Ich habe dieses Problem gelöst, indem ich die maven settings.xml und das Repository geändert habe
quelle