правильный способ использовать элемент scm в pom.xml? - PullRequest
3 голосов
/ 23 декабря 2011

У меня возникли проблемы с scm-элементом и подрывной деятельностью Maven.

Я добавил следующее в свой 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>

, чтобы использовать svn revision в моем манифесте файлов JAR.

Но когда я запускаю «чистую упаковку», я получаю следующее:

[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

Так, что я должен изменить, чтобы заставить это работать? Кроме того, есть ли способ пропустить имя пользователя из URL svn + ssh? Чтобы pom.xml могли использовать все разработчики?

EDIT: Я должен был упомянуть, что я также добавил buildnumber-maven-plugin в свой pom.xml, когда начал получать эту ошибку. Теперь я смотрю на меня так, как будто этот плагин не может справиться с моей версией подрывной деятельности. Как ни странно, это домашняя страница здесь утверждает, что новейшей версией является 1.1-SNAPSHOT, хотя я не могу найти более новую, чем 1.0 (я должен как-то разрешить использование снимков явно?)

Ответы [ 2 ]

0 голосов
/ 23 декабря 2011

Вы правильно использовали элемент scm в вашем pom.xml

Один из способов избежать обработки имени пользователя / пароля - настроить анонимный доступ только для чтения к вашему хранилищу, который будет использоваться для сборки и аналогичных целей. В противном случае ссылки на SO, упомянутые выше, дают некоторые указания о том, как экстернализировать хотя бы пароль, если не имя пользователя.

Что касается сообщения об ошибке, вы видите это из-за различий в версиях клиента Subversion, используемого Eclipse и плагином maven scm.

Из сообщения об ошибке похоже, что Eclipse создал (некоторые из) папки subversion (.svn) в более новом формате (1.7). Похоже, клиент maven scm использует формат 1.6 согласно this .

Одним из способов решения этой проблемы является извлечение проекта с использованием самого плагина maven scm или более старого клиента Subversion.

0 голосов
/ 23 декабря 2011

Чтобы пропустить имя пользователя, найдите файл .ssh/config в каталоге% HOME%, добавьте в него следующие две строки (оставьте все существующие строки в покое):

Host x.y.z
User user
...