【问题标题】:Is maven release:branch supposed to update scm url of the branch?maven release:branch 是否应该更新分支的 scm url?
【发布时间】:2014-09-15 08:39:09
【问题描述】:

我的 pom 中有这个:

<scm>
    <connection>scm:javasvn:http://url.com/repo/myProject/trunk</connection>
    <developerConnection>scm:javasvn:http://url.com/repo/myProject/trunk</developerConnection>
    <url>http://url.com/websvn/listing.php?repname=repo&amp;path=/myProject/trunk</url>
</scm>

当我跑步时:

mvn release:branch -DbranchName=myBranch

它在这里成功创建了分支:

http://url.com/repo/myProject/branches/myBranch

但是当我查看这个分支的 pom.xml 时,“scm”部分仍然和主干一样

<scm>
    <connection>scm:javasvn:http://url.com/repo/myProject/trunk</connection>
    <developerConnection>scm:javasvn:http://url.com/repo/myProject/trunk</developerConnection>
    <url>http://url.com/websvn/listing.php?repname=repo&amp;path=/myProject/trunk</url>
</scm>

Doc says:

  • 转换 POM 中的 SCM 信息以包含最终的 标签的目的地

插件不应该用“/branches/myBranch”替换“/trunk”吗?还是我们应该手动执行此操作?

【问题讨论】:

    标签: maven svn branch release


    【解决方案1】:

    该插件将“trunk”替换为“branches/myBranch”,但不要切换您的工作副本。在新创建的分支中,查看远程 pom.xml,该分支的 scm 信息应该已更改。如果无法提交更改,maven:release 将失败。

    r1643
    [maven-release-plugin] prepare for next development iteration
    ---------------------
    r1642
    [maven-release-plugin]  copy for branch a-project-1.0
    ---------------------
    r1641
    [maven-release-plugin] prepare branch a-project-1.0
    ---------------------  
    

    在您创建分支的修订版中,您的 svn 日志是这样的吗?

    在本例中,r1641 将 pom scm 信息从“trunk”更改为“branches/a-project-1.0”。
    r1642 将主干复制到分支,创建它。
    r1643 再次将 pom scm 信息从“branches/a-project-1.0”更改为“trunk”,这样您就可以在工作副本中保持在trunk。

    当我使用 maven 发布但它失败时,总是在命令行显示错误,并在我的工作副本中留下临时文件,必须使用 mvn --batch-mode release 删除或清理:干净

    尝试将您的 scm.url 更改为“http://url.com/repo/myProject/trunk”而不是“http://url.com/websvn/listing.php?repname=repo&path=/myProject/trunk”(我认为 maven 无法更改您当前的 url 参数)
    然后再次使用:mvn --batch-mode -DbranchName="A_TEST" -Darguments="-DskipTests=true"
    并检查控制台错误、svn 项目根文件夹中的 svn 日志,并检查本地工作副本修改。 如果一切都应该没问题,但不是,请检查您的 Maven 运行时版本。发布标签时,我在使用 maven:release 和 maven 3.0.5 时遇到了一些问题。我仅将 maven 3.1+ 用于分支/发布自动化目的。

    【讨论】:

    • 那我为什么还有“trunk”呢?
    • 我添加了更多信息。希望能帮助您解决问题。
    • 尝试了所有(批处理模式,更改 url 格式)没有任何成功。我仍然在分支的 scm 部分有“主干”。日志中没有错误。在这里创建了一个问题:issues.apache.org/jira/browse/MRELEASE-922
    【解决方案2】:

    我换了

    scm:javasvn:http://...
    

    scm:svn:http://...
    

    现在转换完成了。

    【讨论】:

      猜你喜欢
      • 2019-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-02
      • 1970-01-01
      • 2012-06-01
      • 1970-01-01
      • 2011-01-21
      相关资源
      最近更新 更多