2017-01-18 21 views
10

この質問は、ちょうど推移従属であることと、Mavenで非常に高いレベルでどのように動作するかを明確にすることです。推移Maven依存関係とは何ですか?

私の定義:Aのような依存関係ツリーに - > B - > CCはのための推移的依存関係です。 Bは、A内にコンパイルすると仮定します。

C 場合スコープ次いではMavenのとを構築するのに十分の依存関係としてBを宣言、 B 内をコンパイルしています。しかしCスコープが、その後Bを提供している場合は、Mavenのはを構築する場合、建物が自動的にCに対するをコンパイルしませんない限りは、その依存関係の中でCを宣言します。

これは間違いありませんか?

答えて

12

あなたの仮定は正しいです。

Mavenの依存関係の2つのタイプがあります。

  • ダイレクト:これらは<dependencies/>セクションの下にあなたのpom.xmlファイルで定義された依存関係です。

  • 推移:これらは、依存関係が依存する依存関係です。 providedスコープと

依存関係に意図されている:

  • どちらの最終成果物(例えば、warファイルに対してあなたがservlet-apiservlet-jsp、などを含めるしたいとは思わないでしょう)
  • から除外することまたはオーバーライド - これらを継承するプロジェクトがバージョンを定義し、スコープをオーバーライドする
関連する問題