プロジェクトXに依存するプロジェクトがYあり、Z
プロジェクト Y もプロジェクト Z に依存しています
Xで依存関係のみを指定した場合、依存関係は推移的に取得されるYためpom.xml、すべてが機能します。Z
Zそれで、依存関係を myに含める正当な理由はありますpom.xmlか? それともそのまま放置して大丈夫ですか?
プロジェクトXに依存するプロジェクトがYあり、Z
プロジェクト Y もプロジェクト Z に依存しています
Xで依存関係のみを指定した場合、依存関係は推移的に取得されるYためpom.xml、すべてが機能します。Z
Zそれで、依存関係を myに含める正当な理由はありますpom.xmlか? それともそのまま放置して大丈夫ですか?
アンドリューの答えに同意しますが、いくつかの点を追加したいと思います。
この議論を見たいと思うかもしれません。X のコードで Z を使用する場合、Z を X への依存関係として明示的に追加すると、問題が発生する可能性があります。たとえば、Z をテストの依存関係として追加すると (テストにのみ使用するため)、Z はメイン クラスパスに含まれず、Y によって使用されるクラスが存在しないため、いくつかの問題が発生します。
Maven Enforcer プラグインに追加された新しい Enforcer ルールがあります。これにより、推移的な依存関係をより適切に制御できます。有効にすると、すべての推移的な依存関係が禁止され、それらを明示的に含めるか除外する必要があります。詳しくはこちらをご覧ください。