4

我正在使用以下项目结构

parent
   +-- pom.xml (parent and reactor)
module-1
   +-- pom.xml
module-...
   +-- pom.xml

我希望能够mvn release:prepare在父项目上进行操作,并在 svn 中产生战争以及一致的标签结构。

现在,除了模块的标记外,一切似乎都工作正常,也就是说,amvn release:prepare将标记父项目但没有子项目。我已经commitByProject在 parent-pom 的配置中找到并尝试了该开关。我已经在 moduel-poms 中输入和删除了 scm 配置,我尝试在 module-poms 中配置 release-plugin 都无济于事。发布步骤从不要求我为任何模块提供标记名,因此以后不会在项目中创建标记。

如何配置父模块和模块,以便 amvn release:prepare将标记模块?

4

2 回答 2

2

我建议重新组织结构以适应 Maven 的最佳实践,如下所示:

root (pom.xml; parent)
  +-- module-1 (pom.xml)
  +-- module-2 (pom.xml)
  +-- module-...

这将使您的 Maven 生活更轻松,也可以通过 mvn release:prepare 等进行发布。

我假设您在 VCS 中具有以下文件夹结构:

root 
  +-- parent (pom.xml)
  +-- module-1 (pom.xml)
  +-- module-2 (pom.xml)
  +-- module-...

root 是从版本控制中检出的文件夹(SVN 中的主干;或主 git)。

如果您在给定模块中给出了到父级的正确相对路径,那么一切都应该没有任何问题......在父级中配置 scm 部分。

于 2012-09-06T13:21:30.723 回答
1

经过无数小时的搜索,我不再假设,可以使用 maven 发布插件独立于其他模块标记每个模块。

我发现(并且丢失了)一个明确的评论,这对于发布插件是不可能的,并且还有进一步的提示,例如,发布插件在非交互模式下只接受一个 scm 标签。

由于我是 Java 开发人员,而不是 maven 开发人员,因此我拒绝更改我的包结构,因此只能手动进行标记。

于 2012-09-10T07:47:59.323 回答