この質問は、Mavenでtransitive Dependencyとは何か、それが非常に高いレベルでどのように機能するかを明確にすることを目的としています。
私の定義:A-> B-> Cのような依存関係ツリーで、CはAの推移的な依存関係です。 [〜#〜] b [〜#〜]にはスコープがありますcompileは[〜#〜] a [〜#〜]内にあります。
[〜#〜] c [〜#〜]にスコープがある場合compile within [〜#〜] b [〜#〜][〜#〜] b [〜#〜]の依存関係として宣言[〜#〜] a [〜#〜]で十分です[〜# 〜] a [〜#〜] Mavenで。しかし、[〜#〜] c [〜#〜]にスコープがある場合提供内[〜#〜] b [〜#〜] 、Mavenビルド[〜#〜] a [〜#〜]の場合、ビルは自動的にコンパイルされません[〜#〜] a [〜#〜]に対して- [〜#〜] c [〜#〜][〜#〜] a [〜#〜]宣言[〜#〜] c [〜#〜 ]依存関係の中。
これは正しいです?
あなたの仮定は正しいです。
Maven依存関係には2つのタイプがあります。
Direct:これらは、pom.xml
ファイルは<dependencies/>
セクション。
推移的:これらは、直接的な依存関係の依存関係です。
provided
スコープの依存関係は次のことを意味します。
war
ファイルの場合、servlet-api
、servlet-jsp
など)プロジェクト自体を宣言するときに含める必要がある依存関係は依存関係です