我在使用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更新的(我必须以某种方式明确地使用快照吗?)
答案 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客户端检出项目。