1

我正在使用 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)

根级别有一个主干/分支/标签。

所有 pom 都有 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 release:prepare 时,创建的标记是顶级项目,但不是标记主干,而是向上标记一个级别。所以项目根目录如下:

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

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

我已经尝试过发布插件的 v2.0、2.1、2.4.1。我在顶层的 scm url 中添加了一个尾随 '/'。没有什么帮助。

我的设置有什么明显的问题吗?

更新:所以我们没有充分的理由将聚合器和父 pom 分开,所以我们将它们结合起来,发布插件按预期工作。仍然很惊讶这不起作用,因为我不认为这是一个奇特的设置。如果 maven 家伙想要一个示例项目,我很乐意尝试提出一个。

4

1 回答 1

2

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

如果您可以参考声称该问题已修复的 JIRA-issues,这将有所帮助,因为我不记得有一张票证提到了此文件夹结构。

于 2013-07-12T21:10:44.867 回答