【问题标题】:maven release:prepare fails; seems to be confused about svn's UUIDMaven 发布:准备失败;似乎对 svn 的 UUID 感到困惑
【发布时间】:2010-08-04 05:57:51
【问题描述】:

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

[错误] 构建失败 [信息] --------------------------------------------- ------------------------- [INFO] 无法标记 SCM 提供者消息: svn tag 命令失败。 命令输出: svn:存储库 UUID '3da89ab5-aa79-4544-a1de-ca02bd87a2ce' 与预期不匹配 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 参数运行 Maven 时,我得到了这个堆栈跟踪:

[信息] 追踪 org.apache.maven.BuildFailureException:无法标记 SCM 提供者消息: svn tag 命令失败。 命令输出: svn:存储库 UUID '3da89ab5-aa79-4544-a1de-ca02bd87a2ce' 与预期不匹配 ed UUID '221b71b0-5d3c-7840-b153-25850b4df36e' 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa ultLifecycleExecutor.java:715) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandalone 目标(DefaultLifecycleExecutor.java:569) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Defau ltLifecycleExecutor.java:539) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan dleFailures(DefaultLifecycleExecutor.java:387) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen ts(DefaultLifecycleExecutor.java:284) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi fecycleExecutor.java:180) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 在 org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) 在 org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 在 org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:6 0) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl。 爪哇:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 在 org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 在 org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 在 org.codehaus.classworlds.Launcher.main(Launcher.java:375) 原因:org.apache.maven.plugin.MojoFailureException:无法标记 SCM 提供者消息: svn tag 命令失败。 命令输出: svn:存储库 UUID '3da89ab5-aa79-4544-a1de-ca02bd87a2ce' 与预期不匹配 ed UUID '221b71b0-5d3c-7840-b153-25850b4df36e' 在 org.apache.maven.plugins.release.PrepareReleaseMojo.execute(PrepareRe 租赁Mojo.java:169) 在 org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi nManager.java:490) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa ultLifecycleExecutor.java:694) ... 17 更多

【问题讨论】:

    标签: svn maven-2 release visualsvn-server


    【解决方案1】:

    我觉得自己像个傻瓜,但事实证明,当我切换我的 svn 存储库时,我忽略了更新 pom.xml。现在一切都说得通了。但我真的希望 Maven 能在输出中列出它正在使用的存储库。它会为我节省一整天的时间!

    【讨论】:

      【解决方案2】:

      您好,您必须对 POM 进行哪些更改?我们的团队在使用 maven-release-plugin 时遇到了同样的问题。我尝试了一个干净的结帐并验证了用于 POM 中 scm 配置的主机名和用于结帐工作文件夹的主机名是相同的。您是否发现了其他需要修复 POM 的东西?

      【讨论】:

        【解决方案3】:

        有同样的问题。它已通过以下方式解决:

        1. 从 SVN 清除结帐。
        2. 标记新的快照 av 版本的 人工制品。
        3. 确保使用的是最新版本的插件。

        mvn release:help 将显示版本号。

        截至今日最新: org.apache.maven.plugins Maven 发布插件 2.2.2

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-06-03
          • 2011-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多