使用正确的developerConnection从subversion标记分支maven

时间:2014-02-04 18:36:20

标签: maven svn maven-release-plugin

我正在尝试使用maven从标记创建分支,但 developerConnection 属性未更新。如何通过maven或手动编辑 pom.xml 文件来完成此操作?

我们使用subversion for scm和maven进行构建/发布。我想从最新的标签(发布)创建一个分支。我们将使用分支来维护代码,包括错误修复,并继续在主干上进行开发。 (我知道有关在主干和分支上进行开发的讨论,我不想打开它。)

当我使用release:branch创建分支时,developerConnection属性引用我签出的标记来创建我的工作副本。我希望它指向分支。

  1. 我检查了最新的标签。 ( FOO-80.0.8
  2. 从该标签的工作副本目录的命令行,我运行:

    mvn release:branch -DbranchName=foo-80.0.8.1.x -DupdateWorkingCopyVersions=false
    

    .1.x 1 st分支, x 作为分支版本的占位符指示符。)

  3. 在存储库分支中生成的 pom.xml 中, developerConnection 属性设置为 ... Foo / tags / foo-80.0.8 (我省略了URL的开头以防止自动超链接。)我希望它是 ... Foo / branches / foo -80.0.8.1.x

    我再试一次,但这一次,我编辑了 pom.xml 文件,并将 developerConnection 更改为 ... Foo / branches / foo-80.0 .8.1.x 。运行mvn release:branch ...后, pom.xml 文件中的 developerConnection 仍指向该标记。

    更新

    我接受了@ twomey1的建议。 (谢谢!)现在 developerConnection 指向...\tags\foo-80.0.8.1.x,它不是原始标记( good ),但该标记不存在( bad < / em>的)。我查看了新分支的新副本,修改了 pom.xml 以指向分支,并提交了更改。当我尝试mvn release:prepare时收到此错误消息:

    [ERROR] Failed to execute goal 
    org.apache.maven.plugins:maven-release-plugin:2.0-beta-7:prepare (default-cli) on
    project foo: You don't have a SNAPSHOT project in the reactor projects list.
    

    更新

    @ twomey1关于SNAPSHOT的评论有所帮助。在命令行上使用-DupdateVersionsToSnapshot,我得到了释放:准备继续前进,但似乎仍然存在标签和分支的混淆。再次,我的工作流程:

    1. 运行svn checkout https:.../tags/foo-80.0.8
    2. 从刚签出的标记的工作副本中运行mvn -DupdateVersionsToSnapshot=true -DupdateBranchVersions=true -DupdateWorkingCopyVersions=false -DbranchName=foo-80.0.8.1 release:branch
    3. 从工作副本的父目录运行svn checkout https:.../branches/foo-80.0.8.1
    4. 从刚签出的分支的工作副本中运行mvn release:prepare
    5. 然后我从maven传递了一个svn错误,标签 foo-80.0.8.1 已经存在。我想从分支创建一个不应该冲突的版本。 developerConnection 属性仍然指向不存在的 ... \ tags \ foo-80.0.8.1

      更新

      我重复了这个差异,我在发布版本的末尾添加了.1,SCM发布标记,以及SNAPSHOT之前的开发版本部分。这似乎有效。我在mvn release:prepare期间这样做了。

1 个答案:

答案 0 :(得分:1)

来自官方发布的插件文档

  

默认情况下,新分支中的POM与版本保持相同的版本   本地工作副本,本地POM增加到下一个   修订。如果要更新新分支中的版本而不是更新   工作副本,运行:

     

mvn release:branch -DbranchName = my-branch -DupdateBranchVersions = true   -DupdateWorkingCopyVersions =假

     

注意:如果要从标记

创建分支,这可能很有用

http://maven.apache.org/maven-release/maven-release-plugin/examples/branch.html

我认为你刚从命令中删除-updateBranchVersions = true