使用父POM对多模块项目进行Maven版本控制
这与前面的问题略有不同,因为我有单独的多模块和父POM: 我正在尝试更新我的POMs,使其从开发快照版本升级到发布的版本号。我已经在谷歌上搜索到了这个问题,尝试了发布和版本插件,但似乎没有任何东西能够处理我相当简单的设置 遵循已发布的Maven最佳实践,并在可以避免的情况下尽量不复制信息,我的多模块项目的结构如下所示。 有一个由公共pom-parent.xml定义的单一版本;B取决于A 我觉得有点奇怪,标准插件无法处理看似相当基本的设置,我是否遗漏了什么 我提出的解决方案中没有一个是完全令人满意的: 将产品版本定义为属性有点不可靠,由于user settings.xml或其他技巧,同一模块源可能会获得不同的版本 合并根pom.xml和pom-parent.xml,并将我当前在根pom中维护的产品范围的构建步骤移动到一个专用模块中;希望std插件能正常工作。。。没有试过 有什么建议吗 root/pom-parent.xml:下面所有pom的父级 顶峰 亲本 聚甲醛 1.0.0-SNAPSHOT root/pom.xml:将A和B作为子模块的多模块项目 顶峰 亲本 1.0.0-SNAPSHOT 顶峰 产品 聚甲醛 A. B root/A/pom.xml: 顶峰 亲本 ../parent-pom.xml 1.0.0-SNAPSHOT 顶峰 A. 罐子 root/B/pom.xml: 顶峰 亲本 ../parent-pom.xml 1.0.0-SNAPSHOT 顶峰 B 罐子 顶峰 A. 1.0.0-SNAPSHOT使用父POM对多模块项目进行Maven版本控制,maven,Maven,这与前面的问题略有不同,因为我有单独的多模块和父POM: 我正在尝试更新我的POMs,使其从开发快照版本升级到发布的版本号。我已经在谷歌上搜索到了这个问题,尝试了发布和版本插件,但似乎没有任何东西能够处理我相当简单的设置 遵循已发布的Maven最佳实践,并在可以避免的情况下尽量不复制信息,我的多模块项目的结构如下所示。 有一个由公共pom-parent.xml定义的单一版本;B取决于A 我觉得有点奇怪,标准插件无法处理看似相当基本的设置,我是否遗漏了什么 我提出的解决方案中没有一个是完全令人满意
如果您的结构如下所示:
root
+-- pom.xml (1.0-SNAPSHOT)
!
+-- module1
! +-- pom.xml (1.0-SNAPSHOT)
+-- module2
+-- pom.xml (1.0-SNAPSHOT)
使用root作为其父级的所有模块module1和module2如下所示:
<parent>
<groupId>xxx</groupId>
<artifactId>xxx</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
我已经考虑了其他默认设置,这不需要单独的项目,我只是有一个pom-parent.xml。当版本在父POM中定义时,发布插件将无法工作,这就是我避免在每个模块中复制的方法。您所说的是POM-parent.xml,它是我提到的root/POM.xml,而不是其他。另一个公司pom必须是单独的项目,才能在root/pom.xml中将其用作父项目。该版本仅在父pom root/pom.xml中定义一次,并在父参考中的模块上使用。我想我理解您的建议,这相当于将产品范围的构建步骤移动到我最初提到的单独模块,不是吗?因为如果pom是每个模块pom的父级,那么这些步骤就不能存在于root/pom.xml中。。。也许这是正确的做法,我会尝试一下-谢谢!完全同意。正是这样。这个maven插件也可以解决这类问题:
mvn -B release:prepare release:perform