はい、これは予想される動作です。プロジェクト B が適切に機能するには X、Y、Z が必要であるため、これらの依存関係 (推移的な依存関係と呼ばれます) は実質的にプロジェクトの一部です。
Maven 依存関係解決の詳細な説明については、これを参照してください。
コマンド ラインからmvn dependency:tree
またはを呼び出して、推移的なものを含むすべての依存関係を確認できます。mvn dependency:list
アーティファクトに依存していることがわかっているが、アプリケーション サーバー上の Java EE ライブラリの場合のように実行時に利用できる場合は、それらを次のようprovided
にマークできますpom
。
<dependency>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
これらの依存関係は、結果の atrifact には含まれません。
編集:私の読解力が乏しいことをお許しください:) 「Z」の前の「not」を監督しました。
Z の依存関係が として定義されているprovided
か、optional
フラグが に設定されてtrue
いる場合、または Z が除外されている場合、これは正常な動作である可能性があります。オプションおよび除外された依存関係の Maven の処理については、これを参照してください。
これらのオプションのどちらにも当てはまらない場合、Z が他の依存関係と共にそこにあることを期待します。確認する最善の方法は、Z の出力を実行mvn dependency:tree
またはmvn dependency:list
grep することです。