Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用父POM对多模块项目进行Maven版本控制_Maven - Fatal编程技术网

使用父POM对多模块项目进行Maven版本控制

使用父POM对多模块项目进行Maven版本控制,maven,Maven,这与前面的问题略有不同,因为我有单独的多模块和父POM: 我正在尝试更新我的POMs,使其从开发快照版本升级到发布的版本号。我已经在谷歌上搜索到了这个问题,尝试了发布和版本插件,但似乎没有任何东西能够处理我相当简单的设置 遵循已发布的Maven最佳实践,并在可以避免的情况下尽量不复制信息,我的多模块项目的结构如下所示。 有一个由公共pom-parent.xml定义的单一版本;B取决于A 我觉得有点奇怪,标准插件无法处理看似相当基本的设置,我是否遗漏了什么 我提出的解决方案中没有一个是完全令人满意

这与前面的问题略有不同,因为我有单独的多模块和父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
如果您的结构如下所示:

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