Maven 发布插件在 svn 中创建递归目录



我正在使用 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时,它会在标签/文件夹中创建这个结构

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 中,直到我有一个递归的噩梦:)

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

1.0.0
1.0.1
1.0.2

里面有正确的文物。


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


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

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

这意味着定义:

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

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

最新更新