Maven 发布插件在发布标签下添加主干文件夹以发布 :prepare goal

lexus 阅读:22 2024-11-01 17:39:52 评论:0

我的 SCM 连接信息:

<scm> 
    <connection>scm:svn:https://repo/project/trunk</connection> 
    <developerConnection>scm:svn:https://repo/project/trunk</developerConnection> 
</scm> 

我的发布插件配置:

<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> 

现在,当我运行 mvn release:prepare 时,它不会在 tags/RC 下提交我的标记版本,而是 tags/RC/trunk。如何阻止它在 RC 下添加 trunk

请您参考如下方法:

Brian,你可能是 Maven 不完整的受害者 release:rollback特征。看我的question on StackOverflow以及它的答案。如果你的标签已经存在,Subversion(不是 Maven)会认为你想要复制 trunk inside 现有的标签。删除标签,它将起作用 - 一次。再试一次,你会得到 RC/trunk .再试一次,你会从 Subversion 得到一个错误。

解决方案是svn delete尝试复制之前的标签 - 我们在 release:perform 期间从 Maven 成功地做到了这一点,通过将几个插件绑定(bind)到 deploy阶段。

基本上:

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

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


标签:Maven
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号