我正在我的本地创建一个项目'test-jar',我正在使用pom文件,我没有写访问权限作为'test-jar'项目的父级。父项目已经使用旧版本定义了dependdencyManagement。
因为我必须更新项目中的依赖项版本并计划覆盖父项的依赖项管理。所以,我用自己的依赖关系管理创建了另一个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>
My Custom POM for updated dependencyManagement:
<project>
<artifactid>custom-pom</artifactid>
<dependencyManagement>
<dependencies>
<dependency>
<artifactId>jar</artifactId>
<version>3.0</version>
</dependency>
</dependencyManagement>
</project>
问题是,虽然我在项目中导入了新的依赖关系管理,但我总是从父pom获得依赖版本。
我在这里使用Maven 2.2.1版本。
有没有解决方法如何从父POM覆盖依赖关系管理?
答案 0 :(得分:1)
基于文档:
此范围仅用于pom中类型为pom的依赖项 部分。它表示指定的POM 应该用POM中的依赖项替换 部分。因为它们被替换,依赖 具有进口范围实际上不参与限制 依赖的传递性。
除了你的问题,你可以简单地使用不同的版本,这些版本与父pom的dependencyManagement中定义的onses不同。此外,您可以创建一个单独的pom,它定义了与新版本(dependencyManagement)的依赖关系,并从给定的父级继承。