web-dev-qa-db-ja.com

推移的なMaven依存関係とは何ですか?

この質問は、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 [〜#〜 ]依存関係の中。

これは正しいです?

35
Johan

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

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

  • Direct:これらは、pom.xmlファイルは<dependencies/> セクション。

  • 推移的:これらは、直接的な依存関係の依存関係です。

providedスコープの依存関係は次のことを意味します。

  • 最終成果物から除外するか(たとえば、warファイルの場合、servlet-apiservlet-jspなど)
  • またはオーバーライド-これらを継承するプロジェクトがバージョンを定義するか、スコープをオーバーライドする場合
37
carlspring

プロジェクト自体を宣言するときに含める必要がある依存関係は依存関係です

0
mahsa