1

ローカルでプロジェクト「test-jar」を作成していますが、「test-jar」プロジェクトの親として書き込みアクセス権がない pom ファイルを使用しています。親プロジェクトは、古いバージョンの depedencyManagement を既に定義しています。

プロジェクトで依存関係のバージョンを更新する必要があり、親の依存関係管理をオーバーライドする計画があるためです。そのため、独自の依存関係管理を使用して別の POM ファイルを作成し、「test-jar」プロジェクトにインポートしました。

私のプロジェクト :

<project>
  <artifactid>test-jar</artifactid>
   <parent>
         <artifactId> test-parent </artifactId>

   </parent>
   <dependencies>
        <dependency>
        <artifactId>jar/artifactId>
       </dependency>
   <dependencies>
   <dependencyManagement>
    <dependencies>
        <dependency>
        <artifactId>custom-pom</artifactId>
            <type>pom</type>
        <scope>import</scope>
    </dependency>
   </dependencyManagement>

</project>

私の親プロジェクト:

<project>
  <artifactid>test-parent</artifactid>

   <dependencyManagement>
    <dependencies>
        <dependency>
        <artifactId>jar/artifactId>
            <version>1.0</version>
    </dependency>
   </dependencyManagement>

</project>

更新された依存関係管理のカスタム POM:

<project>
  <artifactid>custom-pom</artifactid>

   <dependencyManagement>
    <dependencies>
        <dependency>
        <artifactId>jar</artifactId>
            <version>3.0</version>
    </dependency>
   </dependencyManagement>
</project>

問題は、プロジェクトに新しい依存関係管理をインポートしたにもかかわらず、常に親 pom から依存関係バージョンを取得していることです。

ここでは Maven 2.2.1 バージョンを使用しています。

親 POM から依存関係管理を上書きする方法はありますか?

4

1 に答える 1

1

ドキュメントに基づいて:

このスコープは、セクション内のタイプ pom の依存関係でのみ使用されます。これは、指定された POM をその POM のセクションの依存関係に置き換える必要があることを示します。それらは置き換えられるため、インポートのスコープを持つ依存関係は、依存関係の推移性の制限に実際には関与しません。

あなたの問題とは別に、親pomのdependencyManagementで定義されたonsesとは異なる別のバージョンを使用することができます。さらに、新しいバージョン (dependencyManagement) で依存関係を定義し、指定された親から継承する別の pom を作成できます。

于 2012-11-16T08:45:35.363 に答える