2010-08-04 39 views
2

当我尝试使用Maven插件发布,它mvn release:prepare失败,出现以下错误:maven发布:准备失败;似乎混淆了SVN的UUID

 
[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 

回答

1

我觉得自己像一个numnut,但tunrs出来,当我在我的SVN仓库转换,我忽略更新pom.xml。现在一切都说得通了。但我真的希望Maven列出它在输出中使用的存储库。它会为我挽救整整一天的头发!

0

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

0

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

  1. 从SVN清理结帐。
  2. 标记 工件的新快照版本。
  3. 确保使用最新版本的插件。

mvn release:help将显示版本号。

最新截至今日: org.apache.maven.plugins 行家释放小插件 2.2.2