- Mavenの依存関係は2つある
- Direct Dependency と Transitive Dependency (実際にこういった名前があるわけではない。2種類存在するということ)
- Direct Dependency = pomから直接指定されたモジュール
- Transitive Dependency = 推移的に依存しているモジュール
- どちらの依存関係もMavenが解決しクラスパスにセットしてくれる
- Transitive Dependency 内に同じものがあるときは、浅いものが選択される
- この時、Module D のバージョンの違いなどが発生する
- Mavenのスコープを使うと話が少し複雑になる場合がある
- Direct Dependency & Transitive Dependency が provided スコープの場合、依存解決の対象から外れる
- なぜこのような仕様になっているかはわからん