【メモ】Mavenの依存関係について

  • Mavenの依存関係は2つある
  • Direct Dependency と Transitive Dependency (実際にこういった名前があるわけではない。2種類存在するということ)

f:id:bau1537:20210725132202p:plain

  • Direct Dependency = pomから直接指定されたモジュール
  • Transitive Dependency = 推移的に依存しているモジュール
  • どちらの依存関係もMavenが解決しクラスパスにセットしてくれる

f:id:bau1537:20210725133228p:plain

  • Transitive Dependency 内に同じものがあるときは、浅いものが選択される
  • この時、Module D のバージョンの違いなどが発生する

f:id:bau1537:20210725134032p:plain

  • Mavenのスコープを使うと話が少し複雑になる場合がある
  • Direct Dependency & Transitive Dependency が provided スコープの場合、依存解決の対象から外れる
    • なぜこのような仕様になっているかはわからん