我正在尝试使用maven从标记创建分支,但 developerConnection 属性未更新。如何通过maven或手动编辑 pom.xml 文件来完成此操作?
我们使用subversion for scm和maven进行构建/发布。我想从最新的标签(发布)创建一个分支。我们将使用分支来维护代码,包括错误修复,并继续在主干上进行开发。 (我知道有关在主干和分支上进行开发的讨论,我不想打开它。)
当我使用release:branch创建分支时,developerConnection属性引用我签出的标记来创建我的工作副本。我希望它指向分支。
从该标签的工作副本目录的命令行,我运行:
mvn release:branch -DbranchName=foo-80.0.8.1.x -DupdateWorkingCopyVersions=false
( .1.x 指 1 st分支, x 作为分支版本的占位符指示符。)
在存储库分支中生成的 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,我得到了释放:准备继续前进,但似乎仍然存在标签和分支的混淆。再次,我的工作流程:
svn checkout https:.../tags/foo-80.0.8
。mvn -DupdateVersionsToSnapshot=true -DupdateBranchVersions=true
-DupdateWorkingCopyVersions=false -DbranchName=foo-80.0.8.1 release:branch
。svn checkout https:.../branches/foo-80.0.8.1
。mvn release:prepare
。然后我从maven传递了一个svn错误,标签 foo-80.0.8.1 已经存在。我想从分支创建一个不应该冲突的版本。 developerConnection 属性仍然指向不存在的 ... \ tags \ foo-80.0.8.1 。
更新
我重复了这个差异,我在发布版本的末尾添加了.1,SCM发布标记,以及SNAPSHOT之前的开发版本部分。这似乎有效。我在mvn release:prepare
期间这样做了。
答案 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