3 回答
TA贡献1852条经验 获得超1个赞
自Maven 3.5.0以来,使用${revision}占位符对此有一个不错的解决方案。有关详细信息,请参见FrVaBe的答案。对于以前的Maven版本,请参见下面的原始答案。
不,没有。您始终必须指定父母的版本。幸运的是,它继承了大多数情况下所需的模块版本。此外,Maven Release Plugin会自动更改该父级的版本声明,因此-实际上-只要使用Maven Release Plugin进行发布或仅更改版本,就可以在2个位置拥有版本不是问题。
请注意,在某些情况下,此行为实际上还可以,并且可以提供您可能需要的更多灵活性。有时您想使用以前父母的某些版本来继承,但是这不是主流情况。
TA贡献1812条经验 获得超5个赞
Maven并非以这种方式工作,但是存在一种解决方法可以实现此目标(也许有副作用,您必须尝试一下)。诀窍是告诉子项目通过其相对路径而不是其纯Maven坐标来找到其父项,并且还要外部化属性中的版本号:
父pom
<groupId>com.dummy.bla</groupId>
<artifactId>parent</artifactId>
<version>${global.version}</version>
<packaging>pom</packaging>
<properties>
<!-- Unique entry point for version number management -->
<global.version>0.1-SNAPSHOT</global.version>
</properties>
儿童绒球
<parent>
<groupId>com.dummy.bla</groupId>
<artifactId>parent</artifactId>
<version>${global.version}</version>
<relativePath>..</relativePath>
</parent>
<groupId>com.dummy.bla.sub</groupId>
<artifactId>kid</artifactId>
我在我的项目中使用了一段时间的技巧,没有任何具体问题,除了maven在构建开始时会记录很多警告(这不是很优雅)的事实。
编辑
似乎maven 3.0.4不再允许这种配置。
- 3 回答
- 0 关注
- 2229 浏览
添加回答
举报