多くのモジュールと多くのpom.xmlファイルを含む大規模なMavenプロジェクトがあります。プロジェクトが変更され、pomにいくつかの不要な依存関係が含まれていると思います。pomから未使用の依存関係を削除するコマンドはありますか?
多くのモジュールと多くのpom.xmlファイルを含む大規模なMavenプロジェクトがあります。プロジェクトが変更され、pomにいくつかの不要な依存関係が含まれていると思います。pomから未使用の依存関係を削除するコマンドはありますか?
回答:
Mavenの依存関係のプラグインは、特に役立つdependency:analyze目標を:
dependency:analyzeこのプロジェクトの依存関係を分析し、次のものを決定します。使用され、宣言されていません。未使用および宣言済み。
クリーンアップに役立つもう1つのことは、Mavenプロジェクト情報レポートプラグインからの依存性収束レポートです。
ignoreNonCompileオプションをtrueに設定できます。
使用できます dependency:analyze -DignoreNonCompile
これにより、未使用および未使用の宣言済み依存関係のリストが出力されます(/ / /は無視されます)runtimeprovidedtestsystem未使用の依存関係の分析のためのスコープを。)
これを使用するときは注意してください。使用される一部のライブラリ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。