スコープ「import」がある「pom」タイプの依存関係と「import」がない「pom」タイプの依存関係の違いは何ですか? 質問する

スコープ「import」がある「pom」タイプの依存関係と「import」がない「pom」タイプの依存関係の違いは何ですか? 質問する

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-idPOM の セクションに含まれます。その後、 などを追加しなくても、POM の セクション (およびそのすべての子 POM)dependencyManagementでこれらの依存関係を参照できます。dependencyversion

ただし、POM で への通常の依存関係を定義すると、の セクションのother-pom-artifact-idすべてがプロジェクトに推移的に含まれますが、の セクションで定義された依存関係はまったく含まれません。dependenciesdependencyother-pom-artifact-iddependencyManagementother-pom-artifact-id

したがって、基本的に、2 つの異なるタイプの依存関係 (管理された依存関係と通常の依存関係) をインポート/含めるために、2 つの異なるメカニズムが使用されます。

Mavenのウェブサイトには、私が説明するよりもはるかにわかりやすく説明されているページがあります。Maven における依存関係管理また、以下の具体的な情報も含まれています依存関係のインポート

おすすめ記事