Maven发布插件在发布标签下添加trunk文件夹以供发布:准备目标

3 pom.xml maven maven-release-plugin

我的SCM连接信息:

<scm>
    <connection>scm:svn:https://repo/project/trunk</connection>
    <developerConnection>scm:svn:https://repo/project/trunk</developerConnection>
</scm>
Run Code Online (Sandbox Code Playgroud)

我的发布插件配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <tag>RC</tag>
        <autoVersionSubmodules>true</autoVersionSubmodules>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

现在,当我运行时,它确实没有mvn release:prepare提交我的标记版本.如何从将停止下?tags/RCtags/RC/trunktrunkRC

Mih*_*ila 5

Brian,你可能是Maven不完整release:rollback功能的受害者.请参阅我在StackOverflow上的问题及其答案.如果你的标签已经存在,Subversion(不是Maven)会认为你想在现有标签复制trunk .删除标签,它将工作 - 一次.再试一次,你会得到RC/trunk.再试一次,你会从Subversion得到一个错误.

svn delete在您尝试复制之前,解决方案是标记 - 我们release:perform通过将几个插件绑定到deploy阶段,从Maven成功完成此操作.

基本上:

  • 让它release:prepare做,创建一个具有唯一名称的标签.
  • 绑定org.codehaus.mojo:exec-maven-plugin:execdeploy阶段使其运行期间release:perform.配置它来调用svn delete <path to RC tag>.
  • 绑定maven-scm-plugin:branchdeploy使用Maven的SCM插件创建标签.

这对我们有用,它还有一个额外的好处,它也为我们提供了独特的标签供参考.最坏的情况是,您可以忽略这些标签.