多くのモジュールと多くのpom.xml
ファイルを含む大規模なMavenプロジェクトがあります。プロジェクトが変更され、pomにいくつかの不要な依存関係が含まれていると思います。pomから未使用の依存関係を削除するコマンドはありますか?
多くのモジュールと多くのpom.xml
ファイルを含む大規模なMavenプロジェクトがあります。プロジェクトが変更され、pomにいくつかの不要な依存関係が含まれていると思います。pomから未使用の依存関係を削除するコマンドはありますか?
回答:
Mavenの依存関係のプラグインは、特に役立つdependency:analyze
目標を:
dependency:analyze
このプロジェクトの依存関係を分析し、次のものを決定します。使用され、宣言されていません。未使用および宣言済み。
クリーンアップに役立つもう1つのことは、Mavenプロジェクト情報レポートプラグインからの依存性収束レポートです。
ignoreNonCompile
オプションをtrueに設定できます。
使用できます dependency:analyze -DignoreNonCompile
これにより、未使用および未使用の宣言済み依存関係のリストが出力されます(/ / /は無視されます)runtime
provided
test
system
未使用の依存関係の分析のためのスコープを。)
これを使用するときは注意してください。使用される一部のライブラリruntime
は未使用と見なされます!
他の人が言ったように、dependency:analyzeゴールを使用して、どの依存関係が使用および宣言されているか、使用および宣言されていないか、未使用および宣言されているかを見つけることができます。依存関係を見つけることもできます:analyze-dep-mgtあなたdependencyManagementセクションの不一致を探しに役立ちます。
POMから不要な直接依存関係を削除するだけで済みますが、サードパーティのjarによって導入された場合<exclusions>
は、依存関係のタグを使用してサードパーティのjarを除外できます(詳細といくつかの説明については、「依存関係の除外」というタイトルのセクションを参照してください)。 。以下は、Spring依存関係からcommons-loggingを除外する例です。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.5</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
Maven依存関係プラグインを見ましたか?それはあなたのためのものを削除しませんが、あなたが自分で分析を行うことを可能にするツールを持っています。私は特に考えています
mvn dependency:tree
似たような問題があり、依存関係を削除するスクリプトを作成することにしました。それを使用して、依存関係の半分以上をかなり簡単に取り除きました。
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html
mvn dependency:analyze
。すべての依存関係を削除しようとし、機能するかどうかを確認しますmvn install
。