创建标记时,Maven发布插件失败

时间:2010-08-24 19:49:50

标签: java svn maven-2 maven-release-plugin

我正在尝试使用Maven release plugin 2.0来标记版本,并希望将生成的jar部署到存储库。

我被release:prepare卡住了,得到了这个神秘的错误:

[INFO] Checking in modified POMs...
[INFO] Executing: cmd.exe /X /C "svn --non-interactive commit --file C:\Users\ME~1\AppData\Local\Temp\maven-scm-950614965.commit --targets C:\Users\ME~1\AppData\Local\Temp\maven-scm-35306-targets"
[INFO] Working directory: c:\workspace\release-test-trunk
[INFO] Tagging release with the label release-test-1.3.0...
[INFO] Executing: cmd.exe /X /C "svn --non-interactive copy --file C:\Users\ME~1\AppData\Local\Temp\maven-scm-829250416.commit --revision 1885 http://myserver/myproject/sandbox/release-test/trunk http://myserver/myproject/sandbox/release-test/tags/release-test-1.3.0"
[INFO] Working directory: c:\workspace\release-test-trunk
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Unable to tag SCM
Provider message:
The svn tag command failed.
Command output:
svn: OPTIONS of 'http://myserver/myproject/sandbox/release-test': 200 OK (http://myserver)

[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 20 seconds
[INFO] Finished at: Tue Aug 24 19:31:55 GMT 2010
[INFO] Final Memory: 14M/56M
[INFO] ------------------------------------------------------------------------
  • 标签文件夹确实存在且为空
  • 我执行了mvn clean release:clean release:prepare命令以确保重新开始
  • 每当我收到错误时,我执行了mvn release:rollback以使一切恢复正常
  • 它似乎不是凭证问题,pom文件有效地提交,删除-SNAPSHOT并将scm信息切换到标记文件夹。

奇怪的是我不明白如何提交pom文件,因为我既没有在pom中也没有在maven local install中的settings.xml文件中指定任何凭据

我看到很多人遇到类似的问题但是出现了folder already exist错误消息。我没有告诉我错误是什么。

你有什么想法吗?

非常感谢。

修改: @Colin 如果我使用tortoise svn浏览svn:// myserver / myproject / sandbox / release-test,它可以正常工作。但是,如果我在Firefox中键入http://myserver/myproject/sandbox/release-test,则找不到该页面。 另外我认为应该没问题,因为在尝试创建标记之前,pom文件会被提交。 我在pom文件中的scm部分:

<scm>
    <connection>scm:svn:http://myserver/myproject/sandbox/release-test/tags/release-test-1.3.0</connection>
    <developerConnection>scm:svn:http://myserver/myproject/sandbox/release-test/tags/release-test-1.3.0</developerConnection>
    <url>http://myserver/myproject/sandbox/release-test/tags/release-test-1.3.0</url>
</scm>

我尝试删除“http:”,但这不起作用。

1 个答案:

答案 0 :(得分:4)

这个问题真的不是真的。它更多关于svn本身。当svn发送此错误消息时,Maven停止其操作:

  

svn:'http://myserver/myproject/sandbox/release-test'的选项:200 OK(http://myserver

您是否绝对确定http://myserver/myproject/sandbox/release-test地址?

如果http://myserver/myproject/sandbox/release-test不存在,svn将不会提交任何内容。只需将 http:// 替换为 svn://

<scm>
    <connection>scm:svn:svn://myserver/myproject/sandbox/release-test/tags/release-test-1.3.0</connection>
    <developerConnection>scm:svn:svn://myserver/myproject/sandbox/release-test/tags/release-test-1.3.0</developerConnection>
    <url>svn://myserver/myproject/sandbox/release-test/tags/release-test-1.3.0</url>
</scm>

链接:
svnforum.org
An SVN error (200 OK) when checking out from my online repo
Tortoise svn Subversion Update Error