maven发布插件和多模块项目的标签错误

时间:2013-07-12 19:13:34

标签: svn maven-3 tagging maven-release-plugin multi-module

我正在使用Maven 3.0.4。我有一个多模块项目,没什么花哨或异国情调:

/pom.xml (aggregator pom)
   parent/
      pom.xml
   childA/
      pom.xml (inherits from ../parent/pom.xml)
   childB/
      pom.xml (inherits from ../parent/pom.xml)

根级别有一个trunk / branches /标签。

所有poms都有scm部分:

pom.xml:
   <scm>
       <developerConnection>scm:svn:https://mysvnrepo.com/svn/project/trunk</developerConnection>
   </scm>

parent/pom.xml:
   <scm>
       <developerConnection>scm:svn:https://mysvnrepo.com/svn/project/trunk/parent</developerConnection>
   </scm>

childA/pom.xml:
   <scm>
       <developerConnection>scm:svn:https://mysvnrepo.com/svn/project/trunk/childA</developerConnection>
   </scm>

正如其他人在这里和JIRA中的多个错误报告中所报道的那样,当我做mvn发布:prepare时,创建的标记是顶级项目,但它不是标记trunk,而是标记一级。所以项目根看起来像:

/
   trunk/
   branches/
   tags/
       project-0.0.1/
          trunk/
          branches/
          tags/

我找到的似乎没有解决方案。错误报告表明它已在某些版本中修复,然后在其他版本中引入了回归。甚至报道的版本已被修复,有些人报告说它不是。

我尝试过发布插件的v2.0,2.1,2.4.1。我在顶层添加了一个尾随'/'到我的scm网址。什么都没有帮助。

我的设置有什么明显的错误吗?

更新:所以我们没有充分的理由让聚合器和父poms分开,所以我们将它们组合在一起,发布插件按预期工作。仍然感到惊讶,这不起作用,因为我不认为这是一个异国情调的设置。如果maven人想要一个示例项目,我会很乐意尝试提出一个。

1 个答案:

答案 0 :(得分:2)

所以你正在使用聚合器和平面多模块项目?如果从父文件夹中释放,它应该已经可以工作了。 请注意,不存在“每个项目的标记”这样的内容,因此不会使用子项的SCM部分。在发布期间,根据正在执行的项目创建一个标记。是的,如果聚合器pom.xml直接位于主干下,我也很惊讶。

如果您可以参考声称问题已修复的JIRA问题会有所帮助,因为我不记得引用此文件夹结构的故障单。