【问题标题】:correct way to use scm element in pom.xml?在 pom.xml 中使用 scm 元素的正确方法?
【发布时间】:2011-12-23 08:41:55
【问题描述】:

我对 Maven 的 scm 元素和颠覆有一些问题。

我在 pom.xml 中添加了以下内容:

<scm>
  <connection>scm:svn:svn+ssh://user@x.y.z/repositorypath</connection
  <developerConnection>scm:svn:svn+ssh://user@x.y.z/repositorypath</developerConnection>
  <url>scm:svn:svn+ssh://user@x.y.z/repositorypath</url>
</scm>

为了在我的 JAR 文件清单中使用 svn 修订版。

但是当我在上面运行“clean package”时,我得到了这个:

[ERROR] Provider message:
[ERROR] The svn command failed.
[ERROR] Command output:
[ERROR] svn: The path 'C:\xxxxxx' appears to be part of a Subversion 1.7 or greater
working copy.  Please upgrade your Subversion client to use this
working copy.

不过,subversion 似乎在其他方面工作得很好:我可以从 Eclipse 中很好地签出、更新和提交。我还尝试为我的工作副本运行升级,但它已经升级了。

我们的 subversion 服务器是 1.6.11,我的 Eclipse 使用 Subclipse 1.8。 Java HL 是 1.7.2

那么我应该改变什么才能让它工作?另外,有没有办法从 svn+ssh url 中省略用户名?让所有开发者都可以使用 pom.xml?

编辑: 我应该提到当我开始收到此错误时,我还将 buildnumber-maven-plugin 添加到我的 pom.xml 中。我现在看起来好像那个插件无法处理我的颠覆版本。奇怪的是它的主页here 声称最新的是 1.1-SNAPSHOT,而我找不到比 1.0 更新的(我必须以某种方式显式启用使用快照吗?)

【问题讨论】:

  • 您使用的是哪个操作系统?
  • Windows 7. subversion 服务器在 Ubuntu 上运行。
  • 如此干净的软件包只要禁用 buildnumber-maven-plugin 就可以工作?你能验证一下吗?我正在尝试确定您的问题是与 subclipse 还是其他问题有关
  • 是的。我刚试过,确实效果很好。
  • 我从这里获取了相关说明:maven.apache.org/plugin-developers/cookbook/… - 根据 Google 的说法,该页面是最近创建的,但我想这些信息可能已经过时了。如果有 buildnumber-maven-plugin 的替代品,我很想知道!

标签: eclipse svn maven maven-3 subclipse


【解决方案1】:

您在 pom.xml 中正确使用了 scm 元素

避免处理用户名/密码的一种方法是配置对存储库的匿名只读访问,以用于构建和类似目的。否则,上面提到的 SO 参考给出了一些关于如何将密码(如果不是用户名)外部化的指导。

至于错误信息,您会看到这是因为 Eclipse 和 maven scm 插件使用的 subversion 客户端的版本不同。

从错误消息来看,Eclipse 似乎以较新的 (1.7) 格式创建了(部分)subversion 文件夹 (.svn)。看来maven scm客户端使用this的1.6格式。

解决问题的一种方法是使用 maven scm 插件本身或较旧的 subversion 客户端检查项目。

【讨论】:

  • 谢谢。我认为您解决了版本问题!
  • 虽然,你链接的页面上的数字是项目的版本号——不是颠覆的——我相信。下载了源码jarsearch.maven.org/…,看了一下更新实现类。根据它的 Javadoc 中的日期,它大约有一年的历史 - 所以它不能支持 1.7
  • @wannabeartist。感谢您的澄清。我猜1.6 只是巧合。
  • 已确认。我降级到 Subclipse 1.6,现在 pom.xml 工作得很好!
【解决方案2】:

要省略用户名,请在 %HOME% 目录中查找文件 .ssh/config,将以下两行添加到其中(保留任何现有行):

Host x.y.z
User user

【讨论】:

  • 那么您可能需要创建一个。如果 Eclipse 使用的 ssh 客户端遵循 Windows 上 ssh 配置文件的正常约定,这将起作用
  • 好的,我也发现了这个:stackoverflow.com/questions/1255593/…
猜你喜欢
  • 2014-07-06
  • 1970-01-01
  • 2016-03-07
  • 1970-01-01
  • 1970-01-01
  • 2016-06-11
  • 1970-01-01
  • 2012-03-20
  • 1970-01-01
相关资源
最近更新 更多