web-dev-qa-db-ja.com

アーティファクトの依存関係ツリーを取得する方法は?

dependency:treeを使用して、特定のプロジェクトの依存関係ツリーを表示できます。しかし、必要なのは、サードパーティのアーティファクトの依存関係ツリーを表示することです。

空のプロジェクトを作成できると思いますが、もっと簡単なものを探しています(いくつかの成果物に対してこれを行う必要があります)。

92
IttayD

1) maven依存プラグイン を使用します

Pom.xmlのみで単純なプロジェクトを作成します。依存関係を追加して実行します:

mvn dependency:tree

残念ながら dependency mojo はpom.xmlを使用する必要があります。そうしないと、次のエラーが発生します。

Mojo:treeを実行できません。既存のpom.xmlを含むプロジェクトが必要ですが、ビルドはそれを使用していません。

2)Maven中央リポジトリでアーティファクトのpom.xmlを見つけます

依存関係は、成果物のpom.xmlで説明されています。 Mavenインフラストラクチャを使用して検索します。

http://search.maven.org/ に移動し、groupIdとartifactIdを入力します。

または、 http://repo1.maven.org/maven2/ に移動し、最初にプラグインgroupIdを使用してナビゲートし、後でartifactIdを使用し、最後にそのバージョンを使用します。

たとえば、 org.springframework:spring-core を参照してください

3)アーティファクトに対してMaven依存プラグインを使用する

依存性アーティファクトの一部はpom.xmlです。それは依存関係を指定します。そして、このpomでmvndependency:treeを実行できます。

110
amra

次のmavenコマンドを使用して、特定のアーティファクトを検索できます。

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

ドキュメントによると:

各パターンセグメントはオプションであり、完全および部分的な*ワイルドカードをサポートします。空のパターンセグメントは、暗黙的なワイルドカードとして扱われます。

プロジェクトのさまざまなモジュールの中から 'log4j-1.2-api' jarファイルを見つけようとしているとします。

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

詳細については、 こちら をご覧ください。

30
Kayvan Tehrani

解決策は、アーティファクトのpom.xmlファイルでdependency:treeを呼び出すことです:

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

リポジトリからアーティファクトの推移的な依存関係をリストする方法? も参照してください

5
Matthias M

m2Eclipse の現在のバージョンを使用する場合(Eclipseとmavenを使用する場合はこれを使用する必要があります):

メニューエントリを選択します

Navigate -> Open Maven POM

探しているアーティファクトを入力します。

Pomはpomエディターで開き、そこからタブDependency Hierarchyを選択して依存関係の階層を表示できます(名前が示すとおり:-))

2

アーティファクトが特定のプロジェクトの依存関係ではない場合、最善の策は リポジトリ検索エンジン を使用することです。それらの多くは、特定のアーティファクトの依存関係を説明しています。

1
Pascal Thivent

依存関係ツリーのグラフィカルで検索可能な表現(プロジェクトのすべてのモジュール、推移的な依存関係、およびエビクション情報を含む)を取得したい場合は、UpdateImpactを確認してください: https://app.updateimpact.com =(無料サービス)。

免責事項:私はサイトの開発者の一人です

0
adamw