J'ai un grand projet Maven avec de nombreux modules et pom.xml. et le projet a tellement changé que je suis sûr que les pom doivent avoir des dépendances inutiles. Est-ce que quelqu'un sait s'il y a une commande que vous pouvez exécuter pour supprimer toute dépendance inutile d'un pom?
Le plugin Maven Dependency vous aidera, en particulier l’objectif dependency:analyze
:
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é; utilisé et déclaré.
Une autre chose qui pourrait aider à faire un nettoyage est le rapport de convergence de dépendance du plug-in de rapports d'informations de projet Maven .
Comme d'autres l'ont déjà dit, vous pouvez utiliser l'objectif dependency: analysis pour rechercher 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 dependency: analyse-dep-mgt utile pour rechercher les incompatibilités dans votre section dependencyManagement.
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 les balises <exclusions>
dans une dépendance pour exclure les jars tiers ( voir la section intitulée Exclusions de dépendance pour plus de détails et une discussion). Voici un exemple excluant la consignation de commons 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>
_
Vous pouvez utiliser dependency:analyze -DignoreNonCompile
Ceci imprimera une liste de dépendances _used undeclared
_ et _unused declared
_ (tout en ignorant les étendues runtime
/provided
/test
/system
pour les analyses de dépendance non utilisées. )
Mais soyez prudent lorsque vous utilisez ceci, certains Les bibliothèques utilisées à runtime
sont considérées comme non utilisées!
Avez-vous regardé le Plugin Maven Dependency ? Cela ne supprimera rien pour vous, mais des outils vous permettront de faire l'analyse vous-même. Je pense en particulier à
mvn dependency:tree
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, je me suis débarrassé assez facilement de la moitié des dépendances.
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html