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

使用正确的developerConnection从subversion标记分支到maven,maven,svn,maven-release-plugin,Maven,Svn,Maven Release Plugin,我正在尝试使用maven从标记创建分支,但是developerConnection属性没有更新。如何通过maven或手动编辑pom.xml文件来实现这一点 我们将subversion用于scm,将maven用于构建/发布。我想从最新的标签(版本)创建一个分支。我们将使用分支来维护代码,包括bug修复,并继续在主干上开发。(我知道关于在主干上开发与在分支上开发的讨论涉及其中,我不想就此公开。) 当我使用release:branch创建分支时,developerConnection属性引用我签出以创

我正在尝试使用maven从标记创建分支,但是developerConnection属性没有更新。如何通过maven或手动编辑pom.xml文件来实现这一点

我们将subversion用于scm,将maven用于构建/发布。我想从最新的标签(版本)创建一个分支。我们将使用分支来维护代码,包括bug修复,并继续在主干上开发。(我知道关于在主干上开发与在分支上开发的讨论涉及其中,我不想就此公开。)

当我使用release:branch创建分支时,developerConnection属性引用我签出以创建工作副本的标记。我想让它指向树枝

  • 我查看了最新的标签。(foo-80.0.8)
  • 从该标记的工作副本目录中的命令行,我运行:

    mvn release:branch -DbranchName=foo-80.0.8.1.x -DupdateWorkingCopyVersions=false
    
    (1.x表示第1个分支,其中x作为分支版本的占位符指示符。)

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

    我再次尝试,但这次我编辑了pom.xml文件,并将developerConnection更改为…Foo/branchs/Foo-80.0.8.1.x。运行
    mvn发行版:branch…
    后,pom.xml文件中的developerConnection仍然指向标记

    更新:

    我接受了@twomey1的建议。(谢谢!)现在developerConnection指向
    …\tags\foo-80.0.8.1.x
    ,它不是原始标记(好),但该标记不存在(坏)。我签出了新分支的新副本,修改了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关于快照的评论起到了帮助作用。在命令行上使用-DupdateVersionsToSnapshot,我得到了一个版本:准备继续,但似乎仍然与标记和分支混淆。同样,我的工作流程:

  • 运行
    svn checkout https:…/tags/foo-80.0.8
  • 运行mvn-DupdateVersionsToSnapshot=true-DupdateBranchVersions=true -DupdateWorkingCopyVersions=false-DbranchName=foo-80.0.8.1发行版:从刚刚签出的标记的工作副本中分支
  • 从工作副本的父目录运行
    svn checkout https:…/branchs/foo-80.0.8.1
  • 运行
    mvn发行版:从刚刚签出的分支的工作副本中准备
  • 然后我从maven那里得到一个svn错误,该错误表明标记foo-80.0.8.1已经存在。我想从分支创建一个不应该冲突的版本。developerConnection属性仍然指向…\tags\foo-80.0.8.1,该属性不存在

    更新:


    我重复了这个区别,在发布版本的末尾添加了.1、SCM发布标签和快照之前的开发版本部分。这似乎奏效了。我在mvn发布期间做了这件事:从官方发布插件文档中准备

    默认情况下,新分支中的POM与 本地工作副本,并且本地POM将递增到下一个 修订如果要更新新分支中的版本,而不是 要创建工作副本,请运行:

    mvn发布:branch-DbranchName=my branch-DupdateBranchVersions=true -DupdateWorkingCopyVersions=false

    注意:如果要从标记创建分支,这可能很有用


    我认为您的命令中缺少了-updateBranchVersions=true

    谢谢,@ctwomey1。这是朝着正确方向迈出的一步。它不再指向原始标记,而是指向…/tags/foo-80.0.8.1.x该标记不存在,但分支确实存在。也许这不是将标记更改为分支。我将新分支作为单独的工作副本签出,并手动编辑pom.xml文件。当我运行
    maven release:prepare
    时,收到错误消息
    [error]无法执行目标org.apache.maven.plugins:maven release plugin:2.0-beta-7:prepare(默认cli)在project foo上:在反应堆项目列表中没有快照项目。
    在使用版本剪切版本时:准备版本号必须以-SNAPSHOT结尾。发布插件将通过必要的步骤将快照更改为实际的发布版本谢谢@ctwomey1!有了快照,我就可以发布了,但它似乎仍然混淆了分支和标记。请参阅原始问题的更新。