Rechercher les dépendances Maven inutilisées

1. Vue d'ensemble

Lorsque vous utilisez Maven pour gérer les dépendances de nos projets, nous pouvons perdre la trace des dépendances utilisées dans notre application.

Dans ce court didacticiel, nous verrons comment utiliser le plugin de dépendance Maven , un plugin qui nous aide à trouver les dépendances inutilisées dans notre projet.

2. Configuration du projet

Commençons par ajouter quelques dépendances, slf4j-api (celle que nous utiliserons) et common-collections (celle que nous n'utiliserons pas):

  commons-collections commons-collections 3.2.2   org.slf4j slf4j-api 1.7.25   

Nous pouvons accéder au plugin de dépendance Maven sans le spécifier dans notre pom. Dans tous les cas, nous pouvons utiliser la définition pom.xml pour spécifier la version et aussi certaines propriétés si nécessaire:

   maven-dependency-plugin 3.1.2   

3. Exemple de code

Maintenant que notre projet est configuré, écrivons une ligne de code où nous utilisons l'une des dépendances que nous avons définies précédemment:

public Logger getLogger() { return LoggerFactory.getLogger(UnusedDependenciesExample.class); }

Le LoggerFactory de la bibliothèque Slf4J est retourné dans une méthode, mais il n'y a pas d'utilisation de la bibliothèque common-collections, ce qui en fait un candidat à la suppression.

4. Rechercher les dépendances inutilisées

En utilisant le plugin de dépendance Maven, nous pouvons trouver les dépendances qui ne sont pas utilisées dans notre projet. Pour cela, nous invoquons l'objectif d'analyse du plugin:

$ mvn dependency:analyze [INFO] --- maven-dependency-plugin:3.1.1:analyze (default-cli) @ maven-unused-dependencies --- [WARNING] Unused declared dependencies found: [WARNING] commons-collections:commons-collections:jar:3.2.2:compile [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.225 s [INFO] Finished at: 2020-04-01T16:10:25-04:00 [INFO] ------------------------------------------------------------------------

Pour chaque dépendance qui n'est pas utilisée dans notre projet, Maven émet un avertissement dans le rapport d'analyse.

5. Spécifiez les dépendances telles qu'elles sont utilisées

Selon la nature du projet, nous pouvons parfois avoir besoin de charger des classes au moment de l'exécution, comme par exemple dans un projet orienté plugin.

Puisque les dépendances ne sont pas utilisées au moment de la compilation, le maven-dependency-plugin émettrait un avertissement indiquant qu'une dépendance n'est pas utilisée, alors qu'en fait c'est le cas. Pour cela, nous pouvons appliquer et indiquer au plugin qu'une bibliothèque est utilisée.

Nous faisons cela en listant les dépendances dans la propriété usedDependencies :

 org.apache.maven.plugins maven-dependency-plugin   commons-collections:commons-collections   

En exécutant à nouveau l'objectif d' analyse , nous voyons que la dépendance inutilisée n'est plus prise en compte dans le rapport.

6. Conclusion

Dans ce court didacticiel, nous avons appris à trouver les dépendances maven inutilisées. C'est une bonne pratique de vérifier régulièrement les dépendances inutilisées car cela améliore la maintenabilité et réduit la taille de la bibliothèque de notre projet.

Comme toujours, le code source complet avec tous les exemples est disponible à l'adresse over sur GitHub.