Comment obtenir un arbre de dépendances pour un artefact?
dependency:tree
peut être utilisé pour voir l'arbre des dépendances pour un projet donné. Mais ce dont j'ai besoin c'est de voir l'arbre de dépendance pour un artefact de tierce partie.
je suppose que je peux créer un projet vide, mais je suis à la recherche de quelque chose de plus facile (je dois le faire pour plusieurs artefacts).
6 réponses
1) utiliser Maven dependency plugin
créer un projet simple avec pom.xml seulement. Ajoutez votre dépendance et lancez:
mvn dependency:tree
Malheureusement "151980920 dépendances" mojo doit utiliser pom.xml ou vous obtenez l'erreur suivante:
ne peut pas exécuter mojo: tree. Il nécessite un projet avec une pom.xml, mais la compilation n'en utilise pas un.
2) Trouver pom.xml de votre artefact dans le dépôt central de maven
Les dépendancessont décrites dans pom.xml de votre artefact. Trouvez-le en utilisant l'infrastructure maven.
Aller à http://search.maven.org/ et entrez votre groupId et artifactId.
ou vous pouvez aller à http://repo1.maven.org/maven2 / et naviguer d'abord en utilisant des plugins groupId, plus tard en utilisant artifactId et enfin en utilisant sa version.
par exemple voir org.cadre de ressort: noyau de ressort
3) Utilisez le plugin de dépendance maven contre votre artefact
une partie de l'artefact de dépendance est une pom.XML. Ça spécifie que c'est une dépendance. Et vous pouvez exécuter dépendance mvn: arbre sur ce pom.
vous pouvez rechercher un artefact en utilisant cette commande maven:
mvn dependency:tree -Dverbose -Dincludes=[groupId]:[artifactId]:[type]:[version]
selon la documentation:
où chaque segment de motif est optionnel et supporte les jokers complets et partiels*. Un segment de motif vide est traité comme un joker 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 est d'appeler dépendance:arbre avec le pom de l'artefact.fichier xml:
mvn -f "$HOME/.m2/repository/$POM_PATH" dependency:tree
Voir aussi Comment lister les dépendances transitives d'un objet à partir d'un référentiel?
si vous utilisez une version actuelle de m2eclipse (que vous devriez Si vous utilisez eclipse et maven):
sélectionnez l'entrée du menu
Navigate -> Open Maven POM
et entrez l'artefact que vous cherchez.
le pom s'ouvrira dans l'éditeur du pom, à partir duquel vous pouvez sélectionner l'onglet Dependency Hierarchy
pour afficher la hiérarchie de dépendances (comme son nom l'indique :-) )
Si votre artefact n'est pas une dépendance d'un projet donné, votre meilleur pari est d'utiliser un "151910920 référentiel" moteur de recherche . Beaucoup d'entre eux décrit les dépendances d'un artefact.
si vous souhaitez obtenir une représentation graphique et consultable de l'arbre des dépendances (y compris tous les modules de votre projet, les dépendances transitoires et les informations d'expulsion), consultez UpdateImpact: https://app.updateimpact.com (service gratuit).
clause de non-responsabilité: je suis l'un des développeurs du site