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).

55
demandé sur Lii 2010-07-27 15:03:21

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épendances

sont 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.

71
répondu amra 2017-09-12 15:34:53

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 .

15
répondu Kayvan Tehrani 2018-05-04 20:00:21

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?

4
répondu Matthias M 2017-05-23 11:47:18

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 :-) )

2
répondu Sean Patrick Floyd 2010-07-27 11:59:38

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.

1
répondu Pascal Thivent 2017-05-23 11:47:18

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

0
répondu adamw 2015-08-27 15:13:12