maven释放:准备失败;似乎对svn的UUID感到困惑

时间:2010-08-04 05:57:52

标签: svn maven-2 release visualsvn-server

当我尝试使用Maven版本插件时,它在mvn release:prepare上失败并出现以下错误:

[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Unable to tag SCM
Provider message:
The svn tag command failed.
Command output:
svn: Repository UUID '3da89ab5-aa79-4544-a1de-ca02bd87a2ce' doesn't match expect
ed UUID '221b71b0-5d3c-7840-b153-25850b4df36e'

我确定存储库UUID是221b71b0-5d3c-7840-b153-25850b4df36e,并且已经测试了签入和签出。

我删除了所有本地源代码并再次检出,仍然是同样的错误。

我已经确认在svn条目文件中,它引用了正确的UUID 221b71b0-5d3c-7840-b153-25850b4df36e。

我已经运行svnlook uuid e:\repositories\myrepo并返回221b71b0-5d3c-7840-b153-25850b4df36e。

但不知何故,Maven认为UUID尝试标记时会有所不同。

我可以使用svn客户端创建自己的标签。我的svn服务器在我的机器上是本地的,它是在Vista下运行的VisualSVN。我也可以使用Eclipse检查文件。

我的斗智尽头!我唯一能想到的是本地机器名称与存储库URL不同。即,我正在使用DynDNS将流量路由到repo.mydomain.com,并且它已在我的路由器中设置为将流量路由到适当的服务。换句话说,操作系统认为我的机器名称是A_NAME,但我通过URL repo.mydomain.com访问svn。因为这个,maven有可能感到困惑吗?

在Maven和VisualSVN之间,我不知道该怎么做。请帮忙!

最后注意事项:当我使用-e param运行Maven时,我得到了这个堆栈跟踪:

[INFO] Trace
org.apache.maven.BuildFailureException: Unable to tag SCM
Provider message:
The svn tag command failed.
Command output:
svn: Repository UUID '3da89ab5-aa79-4544-a1de-ca02bd87a2ce' doesn't match expect
ed UUID '221b71b0-5d3c-7840-b153-25850b4df36e'

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
ultLifecycleExecutor.java:715)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandalone
Goal(DefaultLifecycleExecutor.java:569)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Defau
ltLifecycleExecutor.java:539)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan
dleFailures(DefaultLifecycleExecutor.java:387)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen
ts(DefaultLifecycleExecutor.java:284)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi
fecycleExecutor.java:180)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
        at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:6
0)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)

        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoFailureException: Unable to tag SCM
Provider message:
The svn tag command failed.
Command output:
svn: Repository UUID '3da89ab5-aa79-4544-a1de-ca02bd87a2ce' doesn't match expect
ed UUID '221b71b0-5d3c-7840-b153-25850b4df36e'

        at org.apache.maven.plugins.release.PrepareReleaseMojo.execute(PrepareRe
leaseMojo.java:169)
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi
nManager.java:490)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
ultLifecycleExecutor.java:694)
        ... 17 more

3 个答案:

答案 0 :(得分:1)

我觉得自己像个numnut,但是当我转换我的svn存储库时,我忽略了更新pom.xml。这下全说通了。但我真的希望Maven列出它在输出中使用的存储库。它会让我节省一整天的头发!

答案 1 :(得分:0)

嘿,那么您对POM的改变是什么?我们的团队遇到了与maven-release-plugin相同的问题。我已经尝试了一个干净的结帐并验证了POM中用于scm配置的主机名和用于签出工作文件夹的主机名是相同的。您是否发现了修复POM所需的其他内容?

答案 2 :(得分:0)

有同样的问题。它得到了解决:

  1. 从SVN清理结账。
  2. 标记新快照的av版本 神器。
  3. 确保使用最新版本的插件。
  4. mvn release:help将显示版本号。

    截至今天的最新消息:     org.apache.maven.plugins     行家释放小插件     2.2.2