349 votes

Existe-t-il un moyen simple de supprimer les dépendances inutilisées d'un pom.xml maven ?

J'ai un gros projet Maven avec de nombreux modules et pom.xmls. et le projet a tellement changé que je suis sûr que les pom's doivent avoir des dépendances inutiles. Est-ce que quelqu'un sait s'il y a une commande que l'on peut lancer pour supprimer toutes les dépendances inutiles d'un pom ?

261voto

Pascal Thivent Points 295221

El Plugin de dépendances Maven vous aidera, en particulier le dependency:analyze objectif :

dependency:analyze analyse les dépendances de ce projet et détermine lesquelles sont : utilisées et déclarées ; utilisées et non déclarées ; non utilisées et déclarées.

Une autre chose qui pourrait aider à faire un peu de nettoyage est le Rapport sur la convergence des dépendances de la Plugin Maven Project Info Reports .

107voto

Saik0 Points 346

Vous pouvez utiliser dependency:analyze -DignoreNonCompile

Cela imprimera une liste de utilisé non déclaré y non utilisé déclaré (tout en ignorant les runtime / provided / test / system pour l'analyse des dépendances inutilisées).

## Soyez prudent en utilisant ceci, certaines bibliothèques utilisées à runtime sont considérés comme inutilisés

Pour plus de détails, consultez ce lien

48voto

Rich Seller Points 46052

Comme d'autres l'ont dit, vous pouvez utiliser le dépendance:analyse pour trouver quelles dépendances sont utilisées et déclarées, utilisées et non déclarées, ou non utilisées et déclarées. Vous pouvez également trouver dépendance:analyse-dep-mgt Il est utile de rechercher les incompatibilités dans votre section de gestion des dépendances.

Vous pouvez simplement supprimer les dépendances directes non souhaitées de votre POM, mais si elles sont introduites par des jars tiers, vous pouvez utiliser la fonction <exclusions> dans une dépendance pour exclure les jars tiers (voir la section intitulée Exclusions pour charges de famille pour plus de détails et une discussion). Voici un exemple excluant commons-logging de la dépendance de Spring :

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring</artifactId>
  <version>2.5.5</version>
  <exclusions>
    <exclusion>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
    </exclusion>
  </exclusions> 
</dependency>

38voto

Brian Agnew Points 143181

Avez-vous regardé le Plugin de dépendances Maven ? Il n'enlèvera pas d'éléments pour vous mais dispose d'outils pour vous permettre de faire l'analyse vous-même. Je pense en particulier à

mvn dependency:tree

13voto

user1132305 Points 51

J'ai eu le même genre de problème et j'ai décidé d'écrire un script qui supprime les dépendances pour moi. En utilisant cela, j'ai éliminé plus de la moitié des dépendances assez facilement.

http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html

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