Pour afficher l'arbre des dépendances d'un projet maven, il y a le plugin suivant :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.2</version>
</plugin>
Avec la commande suivante :
mvn dependency:tree
Mais il est aussi possible d'afficher un équivalent pour les plugins (ce n'est pas vraiment un arbre, mais à défaut de mieux ...) :
mvn dependency:resolve-plugins
Edit: le gars dit que it is a bad habit to specify plugin versions
. C'est évidemment une bêtise.
Mon problème est le suivant : je veux savoir quels plugins sont utilisés sans déclarer explicitement leur version. Oui, c'est possible, et les devs ne se gènent pas pour le faire.
Du coup, quand je veux réunir la déclaration d'un plugin (et de sa version) dans le pluginManagement du pom parent, le build échoue à répétition car, sans version déclarée explicitement :
Du coup on croit utiliser la dernière version du maven-assembly-plugin (par exemple), et on se retrouve avec une version vieille de 7 ans. Il faut donc dans un premier temps figer les versions utilisées des plugins. Mais pour ça, je ne vois que deux solutions :
J'ai donc trouvé le plugin versions-maven-plugin :
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.8.1</version>
</plugin>
Et je vais utiliser le goal display-plugin-updates
ainsi :
mvn versions:display-plugin-updates
Ca va me sortir (entre autres choses) des warnings pour tous les plugins qui ne sont pas déclarés avec une version.