dependency:tree
peut être utilisé pour voir l'arbre de dépendance d'un projet donné. Mais ce dont j'ai besoin, c'est de voir l'arbre de dépendance d'un artefact tiers.
Je suppose que je peux créer un projet vide, mais je cherche quelque chose de plus facile (je dois le faire pour plusieurs artefacts).
Créez un projet simple avec pom.xml uniquement. Ajoutez votre dépendance et lancez:
mvn dependency:tree
Malheureusement, dependency mojo doit utiliser pom.xml ou vous obtenez le message d'erreur suivant:
Impossible d'exécuter mojo: tree. Cela nécessite un projet avec un fichier pom.xml existant, mais la construction n'en utilise pas.
Les dépendances sont décrites dans pom.xml de votre artefact. Trouvez-le en utilisant l'infrastructure Maven.
Allez sur http://search.maven.org/ et entrez votre groupId et votre artefactId.
Ou vous pouvez aller à http://repo1.maven.org/maven2/ et naviguer d'abord en utilisant les plugins groupId, plus tard en utilisant artifactId et enfin en utilisant sa version.
Par exemple, voir org.springframework: spring-core
Une partie de l'artefact de dépendance est un pom.xml. Cela spécifie sa dépendance. Et vous pouvez exécuter mvn dependency: tree sur ce pom.
Vous pouvez rechercher un artifact spécifique à l'aide de cette commande maven:
mvn dependency:tree -Dverbose -Dincludes=[groupId]:[artifactId]:[type]:[version]
Selon la documentation:
où chaque segment de modèle est facultatif et prend en charge les caractères génériques * complets et partiels. Un segment de modèle vide est traité comme un caractère générique implicite.
Imaginez que vous essayez de trouver le fichier jar 'log4j-1.2-api' parmi les différents modules de votre projet:
mvn dependency:tree -Dverbose -Dincludes=org.Apache.logging.log4j:log4j-1.2-api
plus d'informations peuvent être trouvées ici .
La solution consiste à appeler dependency: tree avec le fichier pom.xml de l'artefact:
mvn -f "$HOME/.m2/repository/$POM_PATH" dependency:tree
Voir aussi Comment lister les dépendances transitives d'un artefact à partir d'un référentiel?
Si vous utilisez une version actuelle de m2Eclipse (que vous devriez utiliser si vous utilisez Eclipse et maven):
Sélectionnez l'entrée du menu
Navigate -> Open Maven POM
et entrez l'artefact que vous recherchez.
Le pom s'ouvre dans l'éditeur de pom, à partir duquel vous pouvez sélectionner l'onglet Dependency Hierarchy
pour afficher la hiérarchie des dépendances (comme son nom l'indique :-))
Si votre artefact n'est pas une dépendance d'un projet donné, le mieux est d'utiliser un moteur de recherche repository . Beaucoup d'entre eux décrivent les dépendances d'un artefact donné.
Si vous souhaitez obtenir une représentation graphique et interrogeable de l'arbre de dépendance (comprenant tous les modules de votre projet, les dépendances transitives et les informations d'éviction), consultez UpdateImpact: https://app.updateimpact.com (free un service).
Disclaimer: Je suis l'un des développeurs du site