Maven项目版本作为表达式,不是常量

Maven项目版本作为表达式,不是常量,maven,Maven,我希望父项目的版本与依赖它的其他模块的版本不同,我希望这些模块具有通用版本 这是因为我的父母正在定义dependencyManagement,distributionManagement,buildManagement,*Management。。。父项目的生命周期与其他模块的生命周期完全不同。它很少更新。如果不更改其余模块的版本,它几乎永远不会更新 我基本上想做 <parent> <groupId>com.mycompany</groupId> &

我希望父项目的版本与依赖它的其他模块的版本不同,我希望这些模块具有通用版本

这是因为我的父母正在定义
dependencyManagement
distributionManagement
buildManagement
*Management
。。。父项目的生命周期与其他模块的生命周期完全不同。它很少更新。如果不更改其余模块的版本,它几乎永远不会更新

我基本上想做

<parent>
   <groupId>com.mycompany</groupId>
   <artifactId>myparent</artifactId>
   <version>5</version>
</parent>

<groupId>com.mycompany</groupId>
<artifactId>myApp</artifactId>
<version>${next-version}</version>

com.mycompany
我的父母
5.
com.mycompany
myApp
${next version}
在父母身上

   <groupId>com.mycompany</groupId>
   <artifactId>myparent</artifactId>
   <version>5</version>
   <properties>
          <next-version>1.2.1-SNAPSHOT</next-version>
   </properties>
com.mycompany
我的父母
5.
1.2.1-快照

当我输入这个时,我突然想到——这应该通过中间父级来实现吗?

好吧,事实证明Maven本身有多个继承级别。事实上,他们使用的是中间亲本POM。他们有这样的东西:


org.apache:apache:16>org.apache.maven:maven parent:26>org.apache.maven:maven:3.3.1-SNAPSHOT>org.apache.maven:maven core:{inherited.from.parent}
${next version}
${parent.next version}
这只是一个想法,我不知道它是否会起作用(估计不会,但值得一试)。maven上没有中间父级。事实上,这是可能的,请看这里:我将尝试一下,但我对在project.version中使用属性非常悲观