使用 POM 导入进行依赖关系管理



我正在本地创建一个项目'test-jar',我正在使用我没有写入权限的pom文件作为"test-jar"项目的父级。 父项目已经定义了旧版本的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覆盖依赖管理?

基于文档:

此范围仅用于 pom 类型的依赖项 部分。它表示指定的 POM 应替换为该 POM 中的依赖项 部分。由于它们被替换,依赖关系 具有进口范围实际上不参与限制 依赖项的传递性。

除了您的问题之外,您还可以简单地使用不同的版本,这些版本与父pom的依赖项管理中定义的onses不同。此外,您可以创建一个单独的pom,该pom使用新版本(依赖项管理)定义依赖项,并从给定的父级继承。

相关内容

  • 没有找到相关文章

最新更新