Maven 2.0.9以降では、
<type>pom</type>
<scope>import</scope>
セクション内<dependencyManagement>
。
私の理解では、この pom に含まれる依存関係は、元々ここで定義されているかのように「置き換えられる」ことになります。
上記のソリューションと、スコープのないこの POM への単純な依存関係import
(後者は「依存関係のグループ化」と呼ばれているのを見ました) の違いは何ですか? 唯一の違いは、依存関係の優先順位を解決する際に、このような「グループ化された」依存関係の優先度が低くなることですか?
ベストアンサー1
インポートできるのは管理された依存関係つまり、輸入他のPOMをdependencyManagement
プロジェクトのPOMのセクションに追加します。つまり
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>other.pom.group.id</groupId>
<artifactId>other-pom-artifact-id</artifactId>
<version>SNAPSHOT</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
...
dependencyManagement
すると、の セクションで定義されたすべての依存関係がother-pom-artifact-id
POM の セクションに含まれます。その後、 などを追加しなくても、POM の セクション (およびそのすべての子 POM)dependencyManagement
でこれらの依存関係を参照できます。dependency
version
ただし、POM で への通常の依存関係を定義すると、の セクションのother-pom-artifact-id
すべてがプロジェクトに推移的に含まれますが、の セクションで定義された依存関係はまったく含まれません。dependencies
dependency
other-pom-artifact-id
dependencyManagement
other-pom-artifact-id
したがって、基本的に、2 つの異なるタイプの依存関係 (管理された依存関係と通常の依存関係) をインポート/含めるために、2 つの異なるメカニズムが使用されます。
Mavenのウェブサイトには、私が説明するよりもはるかにわかりやすく説明されているページがあります。Maven における依存関係管理また、以下の具体的な情報も含まれています依存関係のインポート。