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

Sey*_*ini 1 java pom.xml maven

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

myNewProject |
             |_ A 
             |    | 
             |    | C -> version 1.2
             |
             |_ B 
                  |
                  | C -> version 1.2
Run Code Online (Sandbox Code Playgroud)

有什么办法保持C的版本相同的两个AB.请记住,这是两个不同的项目.例如B ,不是子模块A.

我问这个问题,因为我不想myNewProject保留两个不同版本的依赖项

mko*_*bit 5

myNewProject,声明一个<dependencyManagement>部分,以便孩子继承它.从文档(也有一个例子):

依赖性管理部分是用于集中依赖性信息的机制.如果有一组继承了公共父项的项目,则可以将所有关于依赖项的信息放在公共POM中,并且可以更简单地引用子POM中的工件.通过一些例子可以最好地说明该机制.鉴于这两个扩展同一父级的POM:

pom.xml您的父项目中:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>mygroup</groupId>
      <artifactId>C</artifactId>
      <version>1.2</version>
    </dependency>
  </dependencies>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)

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

<dependencies>
  <dependency>
    <groupId>mygroup</groupId>
    <artifactId>C</artifactId>
  </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)