「依存関係は、追加機能を提供するためにプロジェクトにインポートされた外部コードとスニペットです。たとえば、依存関係は、Java プロジェクト内の別のアーカイブまたはファイルである可能性があります。その後、プロジェクトの他の部分が依存関係を参照して実行します。
プロジェクトの依存関係ツリーの明確なイメージを持つことは有益です。インストールされているパッケージ間の競合をすばやく見つけて、効率的に解決できます。
このチュートリアルでは、Maven プロジェクトの依存関係ツリーを表示する方法を学びます。」
始めましょう。
Maven 依存関係プラグイン
Apache Maven ユーティリティには、依存関係を管理できるツールが付属しています。 Maven Dependency Plugin を使用すると、プロジェクトで簡単なコマンドを実行し、そのすべての依存関係を視覚化できます。
プラグイン リソースを以下に示します。
https://maven.apache.org/plugins/maven-dependency-plugin/usage.html
このプラグインを使用してプロジェクトの依存関係ツリーを視覚化する最良の方法は、次のコマンドを実行することです。
mvn 依存関係 : 木前のコマンドは、プロジェクト内のすべての依存関係を見つけて、ツリーのような構造を返します。
これをどのように達成できるかを説明しましょう。
これを行うために、必要な依存関係を持つ任意の Maven プロジェクトを使用できます。
上記のコマンドを実行すると、次の出力例が表示されます。
[ 情報 ] --- メイヴン - 依存 - プラグイン : 2.8 : 木 ( デフォルト - クリップ ) @ジェディス ---[ 情報 ] レディス。 クライアント : ジェダイ : 瓶 : 4.3.0 - スナップショット
[ 情報 ] +- 組織 slf4j : slf4j - API : 瓶 : 1.7.32 : コンパイル
[ 情報 ] +- 組織 アパッチ . コモンズ : コモンズ - プール2 : 瓶 : 2.11.1 : コンパイル
[ 情報 ] +- 組織 json : json : 瓶 : 20211205 : コンパイル
[ 情報 ] +- と。 グーグル . コード . グソン : グソン : 瓶 : 2.8.9 : コンパイル
[ 情報 ] +- ジュニット : ジュニット : 瓶 : 4.13.2 : テスト
[ 情報 ] | | \ - 組織 ハムクレスト : ハムクレスト - 芯 : 瓶 : 1.3 : テスト
[ 情報 ] +- 組織 slf4j : slf4j - 単純 : 瓶 : 1.7.32 : テスト
[ 情報 ] +- と。 コールシュッター . junix ソケット : junix ソケット - 芯 : 見る : 2.4.0 : テスト
[ 情報 ] | | +- と。 コールシュッター . junix ソケット : junix ソケット - ネイティブ - 一般 : 瓶 : 2.4.0 : テスト
[ 情報 ] | | \ - と。 コールシュッター . junix ソケット : junix ソケット - 一般 : 瓶 : 2.4.0 : テスト
[ 情報 ] \ - 組織 モキート : モキート - 列をなして : 瓶 : 3.12.4 : テスト
[ 情報 ] \ - 組織 モキート : モキート - 芯 : 瓶 : 3.12.4 : テスト
[ 情報 ] +- ネット。 バイトバディ : バイト - バディ : 瓶 : 1.11.13 : テスト
[ 情報 ] +- ネット。 バイトバディ : バイト - バディ - エージェント : 瓶 : 1.11.13 : テスト
[ 情報 ] \ - 組織 同意した : 同意した : 瓶 : 3.2 : テスト
上記の出力からわかるように、Maven はプロジェクトのすべての依存関係をリスト形式で返します。
このコマンドを使用するには、システムに Maven と Java JDK がインストールされている必要があることに注意してください。
依存関係のフィルタリング
大規模なプロジェクトで作業している場合、上記のコマンドを使用してすべての依存関係を表示および管理するのは難しい場合があります。
幸いなことに、Maven 依存関係ツリー プラグインを使用すると、表示されている依存関係をフィルター処理できます。これは、必要な依存関係を含めたり除外したりできることを意味します。
特定の依存関係のみを含めるには、次の構文に示すように Dincludes オプションを使用します。
mvn 依存関係 : 木 - 含む [ グループ ID ] : [ アーティファクト ID ] : [ タイプ ] : [ バージョン ]-Dincludes パラメータの各セグメントはオプションであることに注意してください。
たとえば、特定の依存関係がプロジェクトでどのように使用されているかを表示するには、次のコマンドを実行できます。
mvn 依存関係 : 木 - 含む = junix ソケット : junix ソケット - 芯前のコードは次を返す必要があります。
[ 情報 ][ 情報 ] ------------------------< レディス。 クライアント : ジェダイ >-------------------------
[ 情報 ] Jedis 4.3.0 のビルド - スナップショット
[ 情報 ] -------------------------------- [ 瓶 ] ----------------------------------
[ 情報 ]
[ 情報 ] --- メイヴン - 依存 - プラグイン : 2.8 : 木 ( デフォルト - クリップ ) @ジェディス ---
ツリーから依存関係を除外するには、以下の構文に示すように -Dincludes パラメーターを使用できます。
mvn 依存関係 : 木 - 含む = [ グループ ID ] : [ アーティファクト ID ] : [ タイプ ] : [ バージョン ]例えば:
mvn 依存関係 : 木 - 除外 = junix ソケット : junix ソケット - 芯これにより、以下に示すような出力が返されます。
Mavenは依存関係をファイルに保存します
-DoutputFile パラメーターを使用して、依存関係ツリーをファイルに保存することもできます。以下に例を示します。
mvn 依存関係 : 木 - DoutputFile = 「デップツリー」前のコマンドでは、依存関係ツリーを作成して dep.tree というファイルに保存するように Maven に指示しています。
結果のファイル出力を以下に示します。
+- 組織 slf4j : slf4j - API : 瓶 : 1.7.32 : コンパイル+- 組織 アパッチ . コモンズ : コモンズ - プール2 : 瓶 : 2.11.1 : コンパイル
+- 組織 json : json : 瓶 : 20211205 : コンパイル
+- と。 グーグル . コード . グソン : グソン : 瓶 : 2.8.9 : コンパイル
+- ジュニット : ジュニット : 瓶 : 4.13.2 : テスト
| | \ - 組織 ハムクレスト : ハムクレスト - 芯 : 瓶 : 1.3 : テスト
+- 組織 slf4j : slf4j - 単純 : 瓶 : 1.7.32 : テスト
+- と。 コールシュッター . junix ソケット : junix ソケット - 芯 : 見る : 2.4.0 : テスト
| | +- と。 コールシュッター . junix ソケット : junix ソケット - ネイティブ - 一般 : 瓶 : 2.4.0 : テスト
| | \ - と。 コールシュッター . junix ソケット : junix ソケット - 一般 : 瓶 : 2.4.0 : テスト
\ - 組織 モキート : モキート - 列をなして : 瓶 : 3.12.4 : テスト
\ - 組織 モキート : モキート - 芯 : 瓶 : 3.12.4 : テスト
+- ネット。 バイトバディ : バイト - バディ : 瓶 : 1.11.13 : テスト
+- ネット。 バイトバディ : バイト - バディ - エージェント : 瓶 : 1.11.13 : テスト
\ - 組織 同意した : 同意した : 瓶 : 3.2 : テスト
Maven はプロジェクトの依存関係のみを階層的にファイルに含めます。
結論
この投稿では、Maven 依存関係プラグインを使用して Maven 依存関係ツリーを表示する方法について説明しました。