我有两个maven项目,A
和B
。这些是通用的独立库,它们都有一些共同的依赖关系(即C
)。在大多数情况下,我需要将A
和B
导入我的新项目。以下是myNewProject
的依赖关系树的示例:
myNewProject |
|_ A
| |
| | C -> version 1.2
|
|_ B
|
| C -> version 1.2
是否有任何方法可以使C
和A
的{{1}}版本保持一致。请记住,这是两个不同的项目。例如,B
不是 B
的子模块。
我问这个问题,因为我不希望A
保留两个不同版本的依赖
答案 0 :(得分:5)
在myNewProject
中,声明<dependencyManagement>
部分,以便孩子继承它。来自documentation(也有一个例子):
依赖关系管理部分是用于集中依赖性信息的机制。如果有一组继承了公共父项的项目,则可以将所有关于依赖项的信息放在公共POM中,并且可以更简单地引用子POM中的工件。通过一些例子可以最好地说明该机制。鉴于这两个扩展同一父母的POM:
在您的父项目的pom.xml
中:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>mygroup</groupId>
<artifactId>C</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</dependencyManagement>
然后您无需在子项目中指定版本(A
或B
):
<dependencies>
<dependency>
<groupId>mygroup</groupId>
<artifactId>C</artifactId>
</dependency>
</dependencies>