Maven sucht im Repository nach aktualisierten Abhängigkeiten


167

Gibt es ein Maven-Plugin, mit dem Sie überprüfen können, ob neuere Versionen von Abhängigkeiten im Repository verfügbar sind?

Angenommen, Sie verwenden Abhängigkeit X mit Version 1.2. Jetzt wird eine neue Version von X mit Version 1.3 veröffentlicht. Ich würde gerne anhand der in meinem Projekt verwendeten Abhängigkeiten wissen, für welche Abhängigkeiten neuere Versionen verfügbar sind.


Antworten:


283

Das Maven Versions Plugin und sein display-dependency-updatesMojo sind genau das, wonach Sie suchen:

mvn versions:display-dependency-updates

So sieht die Ausgabe aus:

[INFO] ------------------------------------------------------------------------
[INFO] Building Build Helper Maven Plugin
[INFO]    task-segment: [versions:display-dependency-updates]
[INFO] ------------------------------------------------------------------------
[INFO] [versions:display-dependency-updates]
[INFO]
[INFO] The following dependency updates are available:
[INFO]   org.apache.maven:maven-artifact ........................ 2.0 -> 2.0.9
[INFO]   org.apache.maven:maven-plugin-api ...................... 2.0 -> 2.0.9
[INFO]   org.apache.maven:maven-project ....................... 2.0.2 -> 2.0.9
[INFO]   org.codehaus.plexus:plexus-utils ....................... 1.1 -> 1.5.6
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 17 seconds
[INFO] Finished at: Fri Aug 15 10:46:03 IST 2008
[INFO] Final Memory: 10M/167M
[INFO] ------------------------------------------------------------------------

Danke Pascal. Das habe ich gesucht. Für Spring Version 3.0.1.RELEASE wird jedoch eine neuere Version von 2.5.6 gemeldet. Vielleicht ein Fehler im Plugin?
vom

1
@ Felix Gern geschehen. In Bezug auf das Spring-Artefakt frage ich mich, ob das Problem nicht auf die Tatsache zurückzuführen ist, dass Spring nicht der "Regel" folgt : Die Version sollte 3.0.1-RELEASE sein, nicht 3.0.1.RELEASE. Mit anderen Worten, ich bin mir nicht sicher, ob es sich um einen Fehler handelt (ich meine, ich würde erwarten, dass das Plugin 3.0.1.RELEASE auch als neuer meldet, aber ich bin nicht sicher, ob dies als Fehler akzeptiert wird).
Pascal Thivent

1
Das Überprüfen von Updates maven-plugin-apikann auch verwendet werden, um neuere Versionen von Maven selbst zu überprüfen, da für jede Maven-Version eine neue Version dieser Abhängigkeit veröffentlicht wird.
Tunaki

Das ist gut zu wissen. Gibt es jedoch eine Möglichkeit, diesen Bericht zu erstellen, wenn wir ein Projekt erstellen, anstatt diesen Befehl explizit eingeben zu müssen?
Frederic

33

Wenn Sie E-Mail-Benachrichtigungen erhalten möchten, wenn neuere Artefaktversionen in Maven Central verfügbar sind , können Sie im Artefakt-Listener ein Konto erstellen und auswählen, welchem ​​Artefakt Sie folgen möchten.
Sie können entweder manuell nach Artefakten suchen oder Ihre pom.xml direkt hochladen.

Sie erhalten regelmäßig Benachrichtigungen wie diese (derzeit in Englisch und Französisch verfügbar):

Maven Artefakt-Listener


22

Das VersionEye Maven Plugin macht dasselbe: versioneye_maven_plugin .

VersionEye kann Sie auch über neue Versionen in Maven Repositories informieren. Es ist ein sprachunabhängiges Tool und unterstützt neben Java 7 weitere Sprachen. Neben der einfachen Follow / Notify-Funktion kann es auch GitHub- und BitBucket-Repositorys direkt überwachen und Sie über veraltete Abhängigkeiten in Ihren Projekten informieren.

Geben Sie hier die Bildbeschreibung ein

Es gibt auch eine REST-JSON-API für die Tool-Integration.

Ich bin übrigens der Typ, der dieses Projekt gestartet hat. Lass es mich wissen, falls du fragen hast.


1
Das Projekt ist geschlossen :(
Alireza Fattahi

3

Mit dem Versions Maven Plugin [1] können Sie Berichte auf Ihrer Maven-Site erstellen, um eine Liste möglicher Aktualisierungen zu erhalten. In Bezug auf die Unregelmäßigkeit von Spring scheint das Mercury-Versionsverwaltungssystem zu verwenden [2]. Wenn Sie das Versions-Plugin konfigurieren, können Sie eine spezielle Regel für Spring-Inhalte hinzufügen:

  1. http://mojo.codehaus.org/versions-maven-plugin/
  2. http://docs.codehaus.org/display/MAVEN/Mercury+Version+Ranges

2
Könnten Sie ein Beispiel geben?
Zarathustra

1

In Projekten mit einer großen Anzahl von Abhängigkeiten behalten Sie Ihre Versionen manchmal in einem Eigenschaftenbereich bei.

    <properties>
        <assertj.version>3.15.0</assertj.version>
        <aws-sdk.version>1.11.763</aws-sdk.version>
        <cxf.version>3.3.6</cxf.version>

Wenn Sie nur an Updates dieser Versionen interessiert sind, können Sie den folgenden Befehl verwenden

mvn versions:display-property-updates

Dies bietet eine komprimiertere Ansicht und gibt nur die Versionen zurück, die Sie im Abschnitt Eigenschaften aktualisieren müssen.


Unterschätzte Antwort.
ROMANIA_engineer vor
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.