これは、プロジェクトで未使用のdependency:analyze
依存関係を削除するために使用することを提案する質問です。しかし、これに関するソナタイプのドキュメントを読んだとき、それらの未使用の依存関係を削除する場合は注意が必要な場合があることを理解するようになりました。
関連する部分は次のとおりです。
テストカバレッジが非常に良好でない限り、未使用の宣言された依存関係を削除するときは注意してください。そうしないと、ランタイムエラーが発生する可能性があります。バイトコードの最適化では、さらに不吉な問題が発生します。たとえば、コンパイラが定数の値を置き換えて参照を最適化することは合法です。この依存関係を削除するとコンパイルが失敗しますが、ツールはそれを未使用として表示します。Maven Dependencyプラグインの将来のバージョンでは、これらのタイプの問題を検出および/または無視するためのより優れた手法が提供される予定です。
私はこのシナリオを理解していないようです、彼らは依存関係のクラス/メソッドのいずれかがリフレクションAPIを介してアクセスされた場合のシナリオについて話しているのですか?もしそうなら、maven-3の依存関係プラグインはこれを処理するためのより良いテクニックを持っていますか?
また、なぜ
unused + undeclared
依存関係分析がないのですか?私が持っている(宣言されていない)推移的な依存関係は使用できない可能性がありますが、それでも私の「戦争」の一部であり、除外したいのですが、正しいですか?
編集:依存関係のスコープについて述べたメモが私の2番目の質問に答えると思います。