gradle-versions-plugin : analyse pratique de ben-manes/gradle-versions-plugin
Plugin Gradle pour découvrir les mises à jour des dépendances. Plugin Gradle Versions Ce plugin indique quelles dépendances, plugins et Gradle lui-même ont des versions plus récentes disponibles, dans l'esprit du plugin Maven Versions.
En bref
- De quoi s’agit-il ?
- Gradle plugin to discover dependency updates. Gradle Versions Plugin This plugin reports which of your build's dependencies, plugins, and Gradle itself have newer versions available, in the spirit of the Maven Versions Plugin. Périmètre, usage documenté et points à vérifier.
- À qui s’adresse-t-il ?
- gradle-versions-plugin convient aux équipes dont le besoin correspond au périmètre décrit dans le README. Avant de l'adopter, exécutez `./gradlew dependencyUpdates` et `build/dependencyUpdates/report.txt`, observez la sortie et vérifiez les permissions, les erreurs et les ressources consommées.
- Puis-je l’utiliser commercialement ?
- Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
- En quel langage est-il écrit ?
- Principalement Groovy, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Ce que fait le plugin
Le Gradle Versions Plugin est un plugin Gradle écrit en Groovy qui détecte les versions plus récentes des dépendances, des plugins et de Gradle lui-même déclarés dans un build. Il est décrit comme étant dans l'esprit du Maven Versions Plugin. Le plugin est explicitement limité au rapport : le README indique qu'il ne modifie jamais les fichiers de build ni un catalogue de versions, et renvoie aux plugins associés pour les outils qui appliquent les mises à jour automatiquement.
Application et exécution
La méthode recommandée consiste à appliquer le plugin de paramètres (settings plugin) dans le script de paramètres. Ainsi, le plugin peut signaler les mises à jour des plugins et des dépendances buildscript déclarés dans le script de paramètres et couvre automatiquement chaque sous-projet d'un build multi-projets. L'exécution de ./gradlew dependencyUpdates produit un rapport sur la console et écrit build/dependencyUpdates/report.txt. La tâche se configure dans le script de build du projet racine, ou dans le script de paramètres s'il n'y a pas de script de build racine. Le README demande de remplacer le paramètre $version par la version actuelle indiquée dans le badge.
Stratégie de révision et filtres de stabilité
La propriété de tâche revision contrôle la stratégie de résolution Ivy utilisée pour déterminer ce qui compte comme version la plus récente. Gradle prend en charge nativement release, milestone (par défaut) et integration. Comme les dépôts Maven ne marquent pas les versions de prépublication, une version alpha ou candidate peut encore apparaître comme la version la plus récente sous n'importe quelle stratégie de révision. Pour n'accepter que les mises à jour stables, le plugin permet de définir rejectVersionIf { ... } ou de configurer une stratégie de résolution componentSelection complète. Le README donne quatre exemples, notamment rejeter toutes les versions non stables, rejeter les candidates lorsque la version actuelle est stable, et un filtre basé sur la maturité qui compare des qualificatifs comme alpha, beta et rc.
Formats de rapport et propriétés de tâche
La propriété outputFormatter prend en charge plain (par défaut), json, xml et html, ainsi qu'un formatteur personnalisé sous forme de Closure ou Action. outputDir a pour valeur par défaut build/dependencyUpdates et reportfileName report. Plusieurs propriétés, dont revision, gradleReleaseChannel, outputFormatter, outputDir et reportfileName, peuvent également être définies comme propriétés système pour des exécutions ponctuelles qui remplacent la configuration de la tâche. Les rapports XML et JSON couvrent les trois canaux de publication de Gradle (current, release-candidate, nightly) et incluent des champs indiquant si une vérification de mise à jour a échoué et pourquoi. Le rapport en texte brut affiche les mises à jour Gradle dans une catégorie séparée et exclut les builds nightly.
Projets multi-projets et projets isolés
L'exécution de la tâche dans le projet racine génère un rapport fusionné couvrant tous les projets. Le rapport est agrégé à partir d'une tâche dans chaque projet, fonctionnant ainsi avec l'exécution parallèle, le cache de configuration et la configuration à la demande. Chaque projet reprend les paramètres de résolution du projet parent le plus proche qui les a définis ; configurer la tâche du projet racine couvre donc tous les projets. Avec les projets isolés, le plugin de paramètres applique un plugin à chaque projet lors de son évaluation, donc la configuration recommandée fonctionne sans changement. Un build qui ne peut pas appliquer le plugin de paramètres peut utiliser le plugin contributeur, qui n'enregistre que le producteur alimentant le rapport agrégé. Les builds inclus sont des builds séparés et nécessitent l'application du plugin dans leur propre script de paramètres ; le README montre comment enregistrer une tâche de cycle de vie qui dépend de la tâche dependencyUpdates de chaque build inclus.
Compatibilité et migration
Le plugin requiert Gradle 8.4 ou supérieur, vérifié lors de l'application. Il cible le bytecode Java 8, donc il s'exécute sur toute JVM capable d'exécuter Gradle lui-même. Le README indique que l'exécution parallèle, le cache de configuration, la configuration à la demande et les projets isolés sont pris en charge. Il contient également des notes de migration pour les versions antérieures, de v0.54.0 et antérieures jusqu'à v0.59.0, décrivant des changements de comportement tels que la ligne d'attribution ajoutée en v0.59.0 et le signalement des dépendances partiellement résolues en v0.58.0.
Licence et portée de la documentation
Les métadonnées du dépôt identifient la licence SPDX comme Apache-2.0, mais le matériel fourni ne contient pas le texte de licence, donc cet article ne peut pas décrire les conditions spécifiques. Le README ne mentionne pas non plus de garanties de sécurité, d'engagements de support ou d'aptitude à la production. Pour ces aspects, les utilisateurs doivent consulter le texte officiel de la licence Apache 2.0 et les notes de version du projet.
Vérifier gradle-versions-plugin sur son chemin réel
Pour qualifier ben-manes/gradle-versions-plugin, partez de `./gradlew dependencyUpdates` et `build/dependencyUpdates/report.txt` et conservez la sortie complète. Comparez le résultat attendu par le README avec les journaux, les erreurs, les permissions requises et la consommation de ressources. Ce contrôle doit utiliser le scénario décrit par gradle-versions-plugin, car le dépôt ne permet pas d’inférer une compatibilité avec des environnements ou des versions qui ne sont pas nommés. Les points absents de la documentation restent à confirmer dans le code et dans la configuration du projet.
Conclusion éditoriale
gradle-versions-plugin convient aux équipes dont le besoin correspond au périmètre décrit dans le README. Avant de l'adopter, exécutez `./gradlew dependencyUpdates` et `build/dependencyUpdates/report.txt`, observez la sortie et vérifiez les permissions, les erreurs et les ressources consommées. Les garanties non écrites dans le dépôt ne doivent pas être supposées.
Notes de la communauté