我的Maven项目是多模块的,通常版本号不会同步。例如,我可以拥有一个版本为1.2.3-SNAPSHOT的主POM和一个版本为3.4.5-SNAPSHOT的子模块(不保持同步的主要原因是模块通常从一个项目移动到另一个,必须保持其版本)。Maven:从子模块中检索主模块版本
现在我想把主项目版本放在包含main(或webapp等)的模块的资源中,当然这是一个子模块。这意味着我需要从一个子模块访问主POM版本。
另外请注意,我的项目有3或4个级别;因此,主POM是子模块的祖父,而不仅仅是父母。
尽管有一些Maven的经验,包括先进的东西,迄今为止,我一直无法解决这个问题。
谢谢。
太明显的答案是让大师级POM将大师级版本放在由子子模块读取的属性中。我错过了什么? –
...子模块从大师级继承的事实。它们继承了属性的定义而不是值,因此它们用本身的版本在本地重新评估$ {project.version}。 –
啊,也许这是有效的。我试图建议的是定义一个属性,称为“grand-master.version”,其中的_literal_版本_redundantly_在特级大师中。没有本地碰撞。 –