在pom.xml中使用scm元素的正确方法?

时间:2011-12-23 08:41:56

标签: eclipse svn maven maven-3 subclipse

我在使用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修订版。

但是当我在那上面运行“干净套餐”时,我明白了:

[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更新的(我必须以某种方式明确地使用快照吗?)

2 个答案:

答案 0 :(得分:0)

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

Host x.y.z
User user

答案 1 :(得分:0)

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

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

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

从错误消息中,看起来Eclipse已经创建了(某些)较新(1.7)格式的subversion文件夹(.svn)。看起来maven scm客户端按照this使用1.6格式。

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