Maven:如何在两个独立的maven项目中保持依赖版本同步

时间:2015-11-02 21:44:09

标签: java maven pom.xml

我有两个maven项目,AB。这些是通用的独立库,它们都有一些共同的依赖关系(即C)。在大多数情况下,我需要将AB导入我的新项目。以下是myNewProject的依赖关系树的示例:

myNewProject |
             |_ A 
             |    | 
             |    | C -> version 1.2
             |
             |_ B 
                  |
                  | C -> version 1.2

是否有任何方法可以使CA的{​​{1}}版本保持一致。请记住,这是两个不同的项目。例如,B 不是 B的子模块。

我问这个问题,因为我不希望A保留两个不同版本的依赖

1 个答案:

答案 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>

然后您无需在子项目中指定版本(AB):

<dependencies>
  <dependency>
    <groupId>mygroup</groupId>
    <artifactId>C</artifactId>
  </dependency>
</dependencies>