wake-up-neo.com

Nexus/Maven - Das POM für ... fehlt, es sind keine Abhängigkeitsinformationen verfügbar

Beim Erstellen meines Java-Projekts für Maven stehen mir einige Warnungen wie "Das POM für ... fehlt, keine Abhängigkeitsinformationen verfügbar" bevor. 

Die Artefakte werden auf dem in unserem Unternehmen gehosteten Nexus-Server gespeichert. Das Problem begann, nachdem ich in Nexus eine Aufgabe zum "Entfernen von Releases aus dem Repository" eingeplant hatte, um sie zu bereinigen und nur die letzten 2 Releases zu verwalten.

Aus diesem Grund erhalte ich die folgenden Warnungen für die alten Releases:

[WARNING] The POM for xpto:jar:jar:8.16.1 is missing, no dependency information available
[WARNING] The POM for xpto:jar:jar:8.17.0 is missing, no dependency information available
[WARNING] The POM for xpto:jar:jar:8.18.0 is missing, no dependency information available
[WARNING] The POM for xpto:jar:jar:8.19.0 is missing, no dependency information available

Sobald ich viele Komponentenprojekte habe und die Releases Konstanten sind, wenn ich ein Projekt kompiliere, das diese Komponenten verwendet, bekomme ich eine Menge solcher Warnungen.

Schlagen Sie eine Möglichkeit vor, diese Warnung zu vermeiden, oder führen Sie auf der Clientseite ein Ziel aus, das die Abhängigkeiten neu auflösen oder neu indizieren könnte?

Grüße,

7
Danilo Muñoz

Manchmal sind Releases verfügbar

Wie im obigen Artikel beschrieben, müssen Sie alte Versionen möglicherweise nicht in Ihrem eigenen Repository speichern, abhängig von Ihrem Unternehmen. Ich werde in dieses Szenario einbezogen.

Um beispielsweise nur die letzten 2 Releases aus meinen Komponentenprojekten beizubehalten, sollten einige Schritte befolgt werden, um die Maven-Meldungen [WARNING] zu vermeiden:

1. Entfernen Sie die Releases aus dem Repository

Sie sollten Ihrem Repository eine Aufgabe hinzufügen, um die einzigen Release-Freigaben von n zu erhalten. Dies kann geschehen durch:

  • Gehen Sie zu Sonatype Nexus> Administration> Geplante Aufgaben> Hinzufügen
  • Stellen Sie "Aufgabentyp" auf "Freigaben aus dem Repository entfernen".
  • Richten Sie Ihre eigenen Parameter ein (E-Mail, Wiederholung usw.)

2. Erstellen Sie Maven-Metadatendateien neu

Das "Ace in the Hole" für diese Frage besteht darin, die Maven-Metadatendateien (maven-metadata.xml) neu zu erstellen, sobald die alten Versionsinformationen gespeichert wurden, bis sie neu erstellt werden. Dies kann geschehen durch:

  • Gehen Sie zu Sonatype Nexus> Administration> Geplante Aufgaben> Hinzufügen
  • Legen Sie "Aufgabentyp" auf "Maven-Metadatendateien neu erstellen"
  • Richten Sie Ihre eigenen Parameter ein (E-Mail, Wiederholung usw.)
  • Achtung: Diese Task muss nach dem Entfernen von Releases aus dem Repository ausgeführt werden.

3. Lokales Repository

Nun muss das lokale Repository wissen, dass Metadatendateien aktualisiert wurden. Dies kann durch den Parameter erfolgen:

  • mvn -U:

    -U, - update-snapshots Erzwingt eine Überprüfung auf aktualisierte - Releases und Snapshots auf Remote

  • Zum Beispiel: 

    mvn -U sauberes Paket

Verweise

5
Danilo Muñoz

Überprüfen Sie Ihren settings.xml, d. H. Als solches in bash exportiert:

export MVN_SETTINGS=~/.m2/settings.xml 

Diese Warnung wird normalerweise angezeigt, wenn Sie die Abhängigkeiten nicht aus dem Internet herunterladen können.

2
B. Carpenter