我希望<table>
块中的依赖项继承dependencyManagement
的{{1}}块中的版本,但添加排除项,以便我不需要指定该排除项在每个子模块中。
我的父pom继承自spring-boot-parent:
spring-boot-parent
child pom继承dependencyManagement
:
<artifactId>my-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath/>
</parent>
<dependencyManagement>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>???</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencyManagement>
我尝试了几种方法:
当我将my-parent
替换为 <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
</dependencies>
时,在子模块中,此版本被解析为???
的版本:${parent.version}
,这是不正确的。< / p>
当我用my-parent
替换1.0.0-SNAPSHOT
时,maven会中断,因为它不支持此类属性
我可以将???
修复为${parent.parent.version}
,这样可以正常工作,但如果我更新了spring boot的版本,我还要记得更新此依赖项的版本,这是非直观的
我无法在???
中将2.0.1.RELEASE
提取为属性,并将该属性用作父版本,因为maven不支持该属性。
我可以使用从2.0.1.RELEASE
pom继承的值my-parent
的属性,但据我所知,没有这样的属性。
有没有一种很好的方式来实现我想要的目标?
答案 0 :(得分:0)
使用Maven 3.5时,您可以删除该版本,并且Maven不会抱怨缺少版本。