为什么mvn发布:标记时准备失败?

时间:2008-09-18 12:55:17

标签: svn maven-2 release maven-scm

使用我的多项目pom,我在运行release:prepare时遇到错误。在运行良好之前,项目设置和每个发布步骤都没什么特别的。 我得到的错误是:

    [INFO] ------------------------------------------------------------------------
    [ERROR] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Unable to tag SCM
    Provider message:
    The svn tag command failed.
    Command output:
    svn: Commit failed (details follow):
    svn: File '/repos/june/tags/foo-1.0.2/foo.bar.org/pom.xml' already exists

知道它来自哪里以及如何绕过它?

(对不起重复的帖子 - 先关闭,因为我没有将其表述为可以回答的问题。我希望现在好了。)

修改
maven发布插件负责版本处理本身。因此,当我检查subversion存储库中的路径时,路径尚不存在。

编辑2
@Ben:我不知道服务器版本,但客户端也是1.5.2。

8 个答案:

答案 0 :(得分:10)

最新版本的maven-release-plugin解决了此问题。将其添加到您的POM中以将其拉入。

<build>
  <pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-release-plugin</artifactId>
        <version>2.0-beta-9</version>
      </plugin>
    </plugins>
  </pluginManagement>
</build>

修复的问题是MRELEASE-375

答案 1 :(得分:1)

这是因为您没有增加版本号 - 您的Subversion仓库中已经存在1.0.2。

要么增加你的版本,要么只从你的回购中删除/repos/june/tags/foo-1.0.2标记。

答案 2 :(得分:1)

Roland,如果你还没有看到这个,请看看John Smart关于这个问题的博客文章。虽然他提出的剧本不够优雅,但它解决了这个问题:

http://weblogs.java.net/blog/johnsmart/archive/2008/12/subversion_mave.html

另一种解决方案是使用Git。 (我= =目前正在撰写有关Maven和Git的文章)

答案 3 :(得分:1)

潜在有用的链接:

http://weblogs.java.net/blog/johnsmart/archive/2008/12/subversion_mave.html(之前提及)

http://jira.codehaus.org/browse/MRELEASE-427(真正的错误?)

http://jira.codehaus.org/browse/SCM-406(相关错误)

http://olafsblog.sysbsb.de/?p=73(更新,也许更有帮助的帖子)

答案 4 :(得分:0)

据我所知,这是Subversion 1.5中的一个错误,与maven没有直接关系。但是,修复它的解决方法是更新本地svn存储库并再次运行release:prepare目标。

答案 5 :(得分:0)

我花了很长时间与此作斗争。 SVN 1.5.1+中的某些东西是不同的,它会直接从工作副本中提交标签 - 这正是Maven所做的。关于谁负责解决这个问题,还有很多指责。

您可以执行'svn update'并重新运行release命令,但如果您正在执行release:branch,这将导致release插件不会将POM文件返回到先前的状态。

我所知道的最好的解决方法是回退到Subversion 1.5.0。

答案 6 :(得分:0)

这是fixed在最新发布的插件版本2.0-beta-9

答案 7 :(得分:0)

我点击了这篇文章,因为我在没有安装svn的服务器上遇到了构建问题。

这有助于: Jenkins with Subversion