188 votes

Vérification par Maven des dépendances mises à jour dans le référentiel

Existe-t-il un plugin Maven permettant de vérifier si des versions plus récentes des dépendances sont disponibles dans le référentiel ?

Supposons que vous utilisiez la dépendance X avec la version 1.2. Une nouvelle version de X est publiée avec la version 1.3. J'aimerais savoir, sur la base des dépendances utilisées dans mon projet, quelles sont les dépendances pour lesquelles des versions plus récentes sont disponibles.

0 votes

Question connexe : stackoverflow.com/questions/431332 .

314voto

Pascal Thivent Points 295221

En Plugin Maven Versions et c'est display-dependency-updates mojo sont ce que vous recherchez :

mvn versions:display-dependency-updates

Voici à quoi ressemble le résultat :

[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] ------------------------------------------------------------------------

0 votes

Merci Pascal. C'est ce que je cherchais. Cependant, pour la version 3.0.1.RELEASE de Spring, il est fait état d'une version plus récente de 2.5.6. Peut-être un bug dans le plugin ?

1 votes

@Felix De rien. En ce qui concerne l'artefact Spring, je me demande si le problème n'est pas dû au fait que Spring ne suit pas les règles suivantes "la règle" : la version devrait être 3.0.1-RELEASE, et non 3.0.1.RELEASE. En d'autres termes, je ne suis pas sûr qu'il s'agisse d'un bogue (je veux dire, bien sûr, je m'attendrais à ce que le plugin signale 3.0.1.RELEASE comme étant plus récent aussi, mais je ne suis pas sûr que cela serait accepté comme un bogue).

1 votes

Vérification des mises à jour maven-plugin-api peut également être utilisé pour vérifier les versions les plus récentes de Maven lui-même, puisqu'une nouvelle version de cette dépendance est publiée pour chaque version de Maven.

36voto

яden Points 1929

Si vous souhaitez recevoir des notifications par courrier électronique lorsque de nouvelles versions d'artefacts sont disponibles sur Maven Central vous pouvez créer un compte sur auditeur d'artefacts et choisissez l'artefact que vous souhaitez suivre.
Vous pouvez soit rechercher manuellement des artefacts, soit télécharger directement votre pom.xml.

Vous recevrez périodiquement des notifications comme celle-ci (disponible en anglais et en français pour l'instant) :

Maven artifact listener

21voto

Robert Reiz Points 673

En VersionEye Le plugin Maven fait de même : versioneye_maven_plugin .

VersionEye peut également vous informer des nouvelles versions sur les dépôts Maven. C'est un outil agnostique au niveau du langage et en plus de Java, il supporte 7 autres langages. En plus de la simple fonction suivre/notifier, il peut également surveiller directement les dépôts GitHub et BitBucket et vous notifier des dépendances obsolètes dans vos projets.

enter image description here

Il existe également un API REST JSON pour l'intégration d'outils.

Au fait, c'est moi qui ai lancé ce projet. N'hésitez pas à me contacter si vous avez des questions.

1 votes

Le projet est fermé :(

16voto

muttonUp Points 2986

Dans les projets comportant un grand nombre de dépendances, vous conservez parfois vos versions dans une section de propriétés.

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

Si vous n'êtes intéressé que par les mises à jour de ces versions, vous pouvez utiliser la commande suivante

mvn versions:display-property-updates

Cela donne une vue plus condensée et ne renvoie que les versions que vous devez mettre à jour dans la section des propriétés.

7voto

Saurabh Dedhia Points 31

L'idéal est de définir les versions des dépendances comme propriétés dans le fichier pom.xml et d'exécuter la commande ci-dessous pour obtenir les versions mises à jour de vos dépendances spécifiques/personnalisées.

<properties>
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <skip.tests>true</skip.tests>
    <spring-cloud-gcp.version>1.2.3.RELEASE</spring-cloud-gcp.version>
    <spring-cloud.version>Hoxton.SR6</spring-cloud.version>
    <spring-cloud-stream-schema.version>2.2.1.RELEASE</spring-cloud-stream-schema.version>
    <confluent.version>5.5.1</confluent.version>
    <avro.version>1.10.0</avro.version>
    <janino.version>3.1.2</janino.version>
    <swagger.version>2.9.2</swagger.version>
    <google-cloud-logging-logback.version>0.118.1-alpha</google-cloud-logging-logback.version>
    <spring-cloud-stream-binder-kafka.version>3.0.6.RELEASE</spring-cloud-stream-binder-kafka.version>
</properties>

mvn versions:display-property-updates

[INFO] The following version properties are referencing the newest available version:
[INFO]   ${avro.version} .............................................. 1.10.0
[INFO]   ${spring-cloud-stream-schema.version} ................. 2.2.1.RELEASE
[INFO]   ${janino.version} ............................................. 3.1.2
[INFO] The following version property updates are available:
[INFO]   ${spring-cloud-gcp.version} .......... 1.2.3.RELEASE -> 1.2.5.RELEASE
[INFO]   ${google-cloud-logging-logback.version}  0.118.1-alpha -> 0.118.2-alpha
[INFO]   ${spring-cloud-stream-binder-kafka.version}  3.0.6.RELEASE -> 3.0.8.RELEASE
[INFO]   ${confluent.version} ................................. 5.5.1 -> 6.0.0
[INFO]   ${swagger.version} ................................... 2.9.2 -> 3.0.0
[INFO]   ${spring-cloud.version} .................... Hoxton.SR6 -> Hoxton.SR8
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.572 s
[INFO] Finished at: 2020-10-06T09:35:08-07:00
[INFO] ------------------------------------------------------------------------

Une autre façon d'y parvenir est d'exécuter la commande mvn versions:display-dependency-updates mais le problème que je rencontre avec cette approche est qu'elle me montre également les mises à jour pour les dépendances imbriquées, ce qui n'est pas très utile pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X