我今天尝试切换我们的发布版本,以便它使用分支。在我改变之前,我刚刚做了
mvn release:prepare -B -Dusername=$SVN_USER -Dpassword=$SVN_PASSWORD -Dtag=$RELEASE_VERSION -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$NEXT_DEV_VERSION
mvn release:perform
现在我改为使用
mvn release:branch -B -Dusername=$SVN_USER -Dpassword=$SVN_PASSWORD -DbranchName=$RELEASE_VERSION -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$NEXT_DEV_VERSION -DautoVersionSubmodules=true -DbranchBase=$SVN_BRANCH_BASE -DdryRun=false -DsuppressCommitBeforeBranch=false -DremoteTagging=false -DupdateBranchVersions=true -DupdateVersionsToSnapshot=false -DupdateWorkingCopyVersions=true -DgenerateBackupPoms=false
然后我检查了那个分支并试图对它进行发布。但这不起作用,它告诉我: 无法配置SCM存储库:没有这样的提供者:'s'
SCM配置是:
<scm>
<connection>scm:svn:https://svn2.mycompany.com:8443/svn/polyalert/branches/02_Los_1/releases/0.01.9</connection>
<developerConnection>scm:svn:https://svn2.cmycompany.com:8443/svn/polyalert/branches/02_Los_1/releases/0.01.9</developerConnection>
<url>https://svn2.mycompany.com:8443/svn/polyalert/branches/02_Los_1/releases/0.01.9</url>
</scm>
此网址可能看起来有点奇怪,但我们没有默认布局,这是一个正确的分支网址。
这是用maven 3完成的。我不确定发布是否正确:在我发布的另一个位置执行:branch,但我没有更好的主意,特别是因为我无法设置任何release.properties文件,就像它是使用release:prepare创建的一样。或者是否有必要进行发布:分支和发布:准备?第一次尝试不起作用并得到同样的错误。
有什么建议吗?
由于 迈克尔
答案 0 :(得分:2)
经过多次努力,我发现以下方法有效:
运行mvn release:branch -B -Dusername=$SVN_USER
-Dpassword=$SVN_PASSWORD -DbranchName=$RELEASE_VERSION -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$NEXT_DEV_VERSION -DautoVersionSubmodules=true -DbranchBase=$SVN_BRANCH_BASE -DupdateWorkingCopyVersions=true
。
这将在SVN中创建一个分支,其中所有版本都保存在trunk中,然后将trunk中的版本号增加到$ NEXT_DEV_VERSION并提交它。 Branchbase也可以在插件配置中设置(在这种情况下,可以省略)。
签出新的分支并更改为本地分支目录
mvn release:prepare -B -Dusername=$SVN_USER -Dpassword=$SVN_PASSWORD -Dtag=$RELEASE_VERSION -DreleaseVersion=$RELEASE_VERSION
将分支中的版本号更新为$ RELEASE_VERSION(将在本地更改+通过此单个命令提交到分支)。此命令将在顶部创建一个发布标记。mvn release:perform
以启动实际构建。这将检查在上一步中创建的标记,并以此代码为基础。