3

I'm having some problem with Maven's scm element and subversion.

I added the following to my 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>

in order to use svn revision in my JAR files manifest.

But when I run "clean package" on that, I get this:

[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.

Still, subversion seems to work great otherwise: I can checkout, update and commit just fine from Eclipse. I also tried running upgrade for my working copy, but it was already upgraded.

Our subversion server is 1.6.11 and my Eclipse uses Subclipse 1.8. Java HL is 1.7.2

So what should I change to get this to work? Also, is there a way to omit the username from the svn+ssh url? So that the pom.xml could be use by all developers?

EDIT: I should have mentioned that I also added buildnumber-maven-plugin to my pom.xml when I started getting this error. I now looks to me as if that plugin is unable to deal with my subversion version. Oddly it's homepage here claims that the newest is 1.1-SNAPSHOT, while I can't find newer than 1.0 (must I enable using snapshots explicitly somehow?)

wannabeartist
  • 2,753
  • 6
  • 36
  • 49
  • which operating system are you using? – prusswan Dec 23 '11 at 08:50
  • Windows 7. The subversion server runs on Ubuntu. – wannabeartist Dec 23 '11 at 08:55
  • so clean package works as long as you disable buildnumber-maven-plugin? can you verify this? I am trying to figure out if your problem is with subclipse or with something else – prusswan Dec 23 '11 at 09:56
  • Yes. I just tried and indeed it works fine. – wannabeartist Dec 23 '11 at 10:32
  • I took the instructions for this from here: http://maven.apache.org/plugin-developers/cookbook/add-svn-revision-to-manifest.html - according to Google the page is created just recently, but I guess the information may be outdated anyway. If there is an alternative to the buildnumber-maven-plugin, I'd love to know about it! – wannabeartist Dec 23 '11 at 10:36

2 Answers2

0

To omit the username, look for the file .ssh/config in your %HOME% directory, add the following two lines to it (leave any existing lines alone):

Host x.y.z
User user
prusswan
  • 6,853
  • 4
  • 40
  • 61
  • then you may have to create one. This would work if the ssh client used by Eclipse follows the normal convention of ssh config files on Windows – prusswan Dec 23 '11 at 09:14
  • ok, also I found this: http://stackoverflow.com/questions/1255593/externalising-scm-credentials-with-maven – wannabeartist Dec 23 '11 at 09:19
0

You have used the scm element correctly in your pom.xml

One way to avoid having to handle username/password is to configure an anonymous read-only access to your repository to be used for build and similar purposes. Otherwise, the SO references alluded to above gives some directions on how to externalize at least the password, if not the username.

As for the error message, you see this because of difference in the versions of the subversion client used by Eclipse and maven scm plugin.

From the error message, it looks like Eclipse has created (some of) the subversion folders (.svn) in the newer (1.7) format. It looks like maven scm client uses the 1.6 format as per this.

One way to fix the problem is checkout the project using maven scm plugin itself or an older subversion client.

Raghuram
  • 51,854
  • 11
  • 110
  • 122
  • Thank you. I think you nailed the version problem! – wannabeartist Dec 23 '11 at 10:48
  • Although, the number on the page you linked is the version number of the project - not that of subversion - I believe. I downloaded the source jar http://search.maven.org/#artifactdetails%7Corg.apache.maven.scm%7Cmaven-scm-provider-svnexe%7C1.6%7Cjar and took a look at the update implementation class. It's about a year old according to the date in it's Javadoc - so it cannot support 1.7 – wannabeartist Dec 23 '11 at 11:04
  • @wannabeartist. Thanks for clarifying. I guess `1.6` was just coincidence. – Raghuram Dec 23 '11 at 11:15
  • Confirmed. I downgraded to Subclipse 1.6 and now the pom.xml works just great! – wannabeartist Dec 23 '11 at 11:28