多数のモジュールとpom.xmlを含む大規模なMavenプロジェクトがあります。プロジェクトが大きく変わったので、pomには不必要な依存関係がいくつかあるはずです。誰もあなたがpomから無意味な依存関係を削除するために実行できるコマンドがあるかどうか知っていますか?
Maven Dependency Plugin は、特にdependency:analyze
の目標に役立ちます:
dependency:analyze
は、このプロジェクトの依存関係を分析し、次のうちどれを使用するかを決定します。使用済みおよび未宣言。未使用および宣言済み。
クリーンアップを行うのに役立つもう1つのことは、 Maven Project Info Reports Plugin からの Dependency Convergence report です。
他の人が言ったように、 dependency:analyze ゴールを使用して、どの依存関係が使用され宣言されているか、使用されているか宣言されていないか、未使用で宣言されているかを見つけることができます。 dependency: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 Dependency Plugin を見ましたか?それはあなたのためのものを削除しませんが、分析を自分で行うことができるツールがあります。私は特に考えています
mvn dependency:tree
dependency:analyze -DignoreNonCompile
を使用できます
これにより、used undeclared
およびunused declared
依存関係のリストが出力されます(未使用の依存関係分析ではruntime
/provided
/test
/system
スコープを無視します)。
しかし注意これを使用している間、runtime
で使用されるいくつかのライブラリは未使用と見なされます!
同様の問題が発生したため、依存関係を削除するスクリプトを作成することにしました。それを使用して、依存関係の半分以上をかなり簡単に取り除いた。
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html