Mavenプロジェクトにおいて、特定の依存関係がどのような経路でインストールされたかを確認するには、Mavenの「依存関係ツリー」を利用する方法が有効です。
依存関係ツリーを表示するための手順は以下の通りです:
Maven プラグインを使用する方法
- コマンドラインで依存関係ツリーを表示 Mavenの
mvn dependency:treeコマンドを使用します。このコマンドは、プロジェクトのすべての依存関係とその依存関係をツリー形式で表示します。
mvn dependency:tree
- 特定の依存関係をフィルタリングして表示 依存関係ツリーが大きくなりがちな場合、特定の依存関係(今回の場合はlog4j)に関連する部分だけを表示することができます。以下のようにしてlog4jに関する依存関係をフィルタリングします。
mvn dependency:tree -Dincludes=org.apache.logging.log4j:log4j-core
例:
mvn dependency:tree -Dincludes=org.apache.logging.log4j:log4j-api
- 特定の依存関係の詳細を表示 より詳細な情報を表示するためには
mvn dependency:tree -Dverboseオプションを使用します。
mvn dependency:tree -Dverbose -Dincludes=org.apache.logging.log4j:log4j-core
例
例えば、以下のような依存関係のツリーが表示されるかもしれません:
[INFO] --- maven-dependency-plugin:3.1.2:tree (default-cli) @ your-project ---
[INFO] com.example:your-project:jar:1.0-SNAPSHOT
[INFO] +- com.example.some-dependency:jar:1.0.0:compile
[INFO] | \- org.apache.logging.log4j:log4j-core:jar:2.14.1:compile
[INFO] \- org.apache.logging.log4j:log4j-api:jar:2.14.1:compile
これから、log4j-core と log4j-api が直接または他の依存関係(この場合、some-dependency)を通じてプロジェクトに含まれていることがわかります。
IDEを利用する方法
もしIDEを使用している場合、例えばIntelliJ IDEAやEclipseなどでも依存関係ツリーを表示する機能が用意されています。
- IntelliJ IDEA:
pom.xmlファイルを開きます。- 右側の「Maven」ツールウィンドウを開きます(通常
View > Tool Windows > Maven)。 Dependenciesタブを選択します。- ログ4jのエントリを探すと、それがどの依存関係の一部として含まれているかの詳細が表示されます。
- Eclipse:
- プロジェクトの
pom.xmlファイルを右クリックします。 Maven > Show Dependenciesを選択します。- 依存関係ツリーが表示されるので、log4jに関するエントリを探します。
これによって、どのライブラリ経由でlog4jがプロジェクトに含まれているのかを特定することができます。そして、必要に応じて<exclusions> やバージョンのアップデートなどの対策を行います。

コメント