J'ai un grand projet Maven avec de nombreux modules et de nombreux pom.xml
fichiers. Le projet a changé et je soupçonne que les pom contiennent des dépendances inutiles. Existe-t-il une commande qui supprime les dépendances inutilisées d'un pom?
J'ai un grand projet Maven avec de nombreux modules et de nombreux pom.xml
fichiers. Le projet a changé et je soupçonne que les pom contiennent des dépendances inutiles. Existe-t-il une commande qui supprime les dépendances inutilisées d'un pom?
Réponses:
Le plug-dependency:analyze
in de dépendance Maven vous aidera, en particulier l' objectif:
dependency:analyze
analyse les dépendances de ce projet et détermine lesquelles sont: utilisées et déclarées; utilisé et non déclaré; inutilisé et déclaré.
Une autre chose qui pourrait aider à faire un peu de nettoyage est le rapport de convergence des dépendances du plug-in Maven Project Info Reports .
ignoreNonCompile
option peut être définie sur true.
Vous pouvez utiliser dependency:analyze -DignoreNonCompile
Cela affichera une liste des dépendances déclarées non déclarées et inutilisées utilisées (tout en ignorant les étendues runtime
/ provided
/ test
/ system
pour l'analyse des dépendances inutilisées.)
Soyez prudent lorsque vous utilisez ceci, certaines bibliothèques utilisées sur runtime
sont considérées comme inutilisées!
Comme d'autres l'ont dit, vous pouvez utiliser l' objectif de dépendance: analyse pour trouver les dépendances 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 la dépendance: analyse-dep-mgt utile pour rechercher les incompatibilités dans votre section de gestion des dépendances.
Vous pouvez simplement supprimer les dépendances directes indésirables de votre POM, mais si elles sont introduites par des fichiers JAR tiers, vous pouvez utiliser les <exclusions>
balises dans une dépendance pour exclure les fichiers JAR tiers (voir la section intitulée Exclusions de dépendances pour plus de détails et une discussion) . Voici un exemple excluant la journalisation des communs de la dépendance 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>
Avez-vous regardé le plug-in de dépendance Maven ? Cela ne supprimera pas les choses pour vous, mais dispose d'outils pour vous permettre de faire l'analyse vous-même. Je pense en particulier à
mvn dependency:tree
J'ai eu un problème similaire et j'ai décidé d'écrire un script qui supprime les dépendances pour moi. En utilisant cela, j'ai obtenu plus de la moitié des dépendances assez facilement.
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html
mvn dependency:analyze
. Il essaie simplement de supprimer toutes les dépendances et vérifie si cela mvn install
fonctionne.