it-swarm.com.de

Wie bekomme ich einen Abhängigkeitsbaum für ein Artefakt?

dependency:tree kann verwendet werden, um den Abhängigkeitsbaum für ein bestimmtes Projekt anzuzeigen. Aber was ich brauche, ist den Abhängigkeitsbaum für ein Artefakt von Drittanbietern zu sehen.

Ich denke, ich kann ein leeres Projekt erstellen, aber ich suche nach etwas Einfacherem (ich muss das für mehrere Artefakte machen).

65
IttayD

1) Verwenden Sie Maven Abhängigkeits Plugin

Erstellen Sie ein einfaches Projekt nur mit pom.xml. Fügen Sie Ihre Abhängigkeit hinzu und führen Sie Folgendes aus:

mvn dependency:tree

Leider muss Abhängigkeit mojo pom.xml verwenden, oder es wird folgender Fehler angezeigt:

Mojo: Baum kann nicht ausgeführt werden. Es erfordert ein Projekt mit einer vorhandenen pom.xml, aber der Build verwendet kein Projekt.

2) Suchen Sie nach pom.xml Ihres Artefakts im zentralen Repository von Maven

Abhängigkeiten werden in pom.xml Ihres Artefakts beschrieben. Finden Sie es mit der Maven-Infrastruktur.

Gehen Sie zu http://search.maven.org/ und geben Sie Ihre groupId und artefaktId ein. 

Oder Sie können zu http://repo1.maven.org/maven2/ gehen und zuerst mit den Plugins groupId navigieren, später mit artifactId und schließlich mit seiner Version.

Zum Beispiel siehe org.springframework: spring-core

3) Verwenden Sie das Maven-Abhängigkeits-Plugin gegen Ihr Artefakt

Ein Teil des Abhängigkeitsartefakts ist pom.xml. Das gibt seine Abhängigkeit an. Und Sie können mvn Abhängigkeit: Baum auf diesem Pom ausführen. 

85
amra

Mit diesem Befehl können Sie nach einem bestimmten artefakt suchen:

mvn dependency:tree -Dverbose -Dincludes=[groupId]:[artifactId]:[type]:[version]

Laut der Dokumentation:

wobei jedes Mustersegment optional ist und vollständige und teilweise * Platzhalter unterstützt. Ein leeres Mustersegment wird als impliziter Platzhalter behandelt.

Stellen Sie sich vor, Sie versuchen, die JAR-Datei 'log4j-1.2-api' unter verschiedenen Modulen Ihres Projekts zu finden:

mvn dependency:tree -Dverbose -Dincludes=org.Apache.logging.log4j:log4j-1.2-api

weitere Informationen finden Sie hier .

23
Kayvan Tehrani

Die Lösung ist, Abhängigkeit: Baum mit der Datei pom.xml des Artefakts aufzurufen:

mvn -f "$HOME/.m2/repository/$POM_PATH" dependency:tree

Siehe auch Wie kann ich die transitiven Abhängigkeiten eines Artefakts aus einem Repository auflisten?

4
Matthias M

Wenn Sie eine aktuelle Version von m2Eclipse verwenden (was Sie bei Verwendung von Eclipse und Maven tun sollten):

Wählen Sie den Menüeintrag

Navigate -> Open Maven POM

und geben Sie das Artefakt ein, nach dem Sie suchen.

Das Pom wird im Pom-Editor geöffnet. Dort können Sie die Registerkarte Dependency Hierarchy auswählen, um die Abhängigkeitshierarchie anzuzeigen (wie der Name schon sagt :-)).

2

Wenn Ihr Artefakt nicht von einem bestimmten Projekt abhängig ist, verwenden Sie am besten eine Repository-Suchmaschine . Viele von ihnen beschreiben die Abhängigkeiten eines bestimmten Artefakts.

1
Pascal Thivent

Wenn Sie eine grafische, durchsuchbare Darstellung des Abhängigkeitsbaums (einschließlich aller Module Ihres Projekts, transitive Abhängigkeiten und Informationen zur Entfernung) erhalten möchten, besuchen Sie UpdateImpact: https://app.updateimpact.com (kostenlos Bedienung).

Disclaimer: Ich bin einer der Entwickler der Site

0
adamw