我正在本地创建一个项目'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使用新版本(依赖项管理)定义依赖项,并从给定的父级继承。