我有几个具有相同依赖关系的子pom.xml文件,但是
他们只有版本不同。我想使用<dependencyManagement>
从父pom.xml继承它们。例如:
Child1:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
</dependency>
Child2:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>0.9.9</version>
</dependency>
Child3:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.1</version>
</dependency>
有没有办法区分它们或只是保留原样?
答案 0 :(得分:1)
您可以使用dependencyManagement
在父POM中声明这些依赖项,然后继承该声明并覆盖其在子POM中的版本。
所以给出你问题中的例子,如果父POM看起来像这样:
<dependencyManagement>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.5.1</version>
</dependency>
</dependencyManagement>
然后您的孩子POM仍然可以声明他们自己的com.google.code.gson:gson
版本。
但 ...使用dependencyManagement
的规范优势是......
依赖管理提供:
- 整合和集中管理版本......当您有多个共享父项目的项目时,此功能特别有用
- 定义要在多个项目中使用的工件的标准版本
...这种声明包含子POM中的版本的依赖的方法使得父POM中的dependencyManagement
声明无关紧要,即如果您选择覆盖该缓存的每个方面,为什么还要声明它。
总结;如果您具有在多个子模块中使用的依赖项,并且您要为其定义公共版本,请使用dependencyManagement
。如果依赖项仅在一个子模块中使用和/或您不希望在所有子模块中使用该依赖项的单个版本,则不必为该依赖项创建dependencyManagement
条目。 / p>