1

我正在使用 maven-release-plugin 2.3.2 并且能够prepare and perform release. 问题是这样的。

SVN 回购: http://svnserver:8080/myrepo/test/projectA

Project A         
   |
    branches/
    tags/
    trunk/

当我mvn release:perform第一次这样做时,它会在 tags/ 文件夹中创建这个结构

branches/
tags/
   |
    ProjectA_1.0.0
        | 
        branches/ <structure from the parent branches/ folder>
        tags/
        trunk/

当我mvn release:perform第二次做时,这是输出

branches/
tags/
   |
    ProjectA_1.0.0
        | 
        branches/<structure from the parent branches/ folder>
        tags/
        trunk/
    ProjectA_1.0.1
        | 
        branches/<structure from the parent branches/ folder>
        tags/ProjectA_1.0.0/branches/<structure from the parent branches/ folder>
        tags/ProjectA_1.0.0/tags/
        tags/ProjectA_1.0.0/trunk
        trunk/

依此类推...整个 1.0.1 将被复制到 1.0.2 中,直到我有一个递归的噩梦 :)

虽然如果我<releases>在 Nexus 中访问我的存储库,一切都很好,我会看到干净的目录,例如

1.0.0
1.0.1
1.0.2

里面有正确的工件。


我已经直接在命令行上使用插件和 Jenkins 使用 M2 发布插件对此进行了测试。结果相同。这指向了某个地方错误配置的方向,而不是我如何或从哪里调用它。


我对插件或scm标签做错了什么?

4

1 回答 1

4

您必须定义要发布的项目的主干并将其配置到 pom.xml 的 scm 区域中:

这意味着定义:

<scm>
  <connection>scm:svn:http://svnserver:8080/myrepo/test/projectA/trunk</connection>
  <developerConnection>scm:svn:http://svnserver:8080/myrepo/test/projectA/trunk</developerConnection>
</scm>

如果您有一个多模块构建,则必须仅在父级而不是子级中定义它。

于 2012-12-10T11:05:13.587 回答