Почему mvn release: prepare завершается с ошибкой при пометке?

StackOverflow https://stackoverflow.com/questions/92258

Вопрос

С моим многопроектным pom я получаю сообщение об ошибке при запуске release: prepare.В настройке проекта нет ничего особенного, и каждый предшествующий выпуску шаг выполняется нормально.Ошибка, которую я получаю, это:

    [INFO] ------------------------------------------------------------------------
    [ERROR] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Unable to tag SCM
    Provider message:
    The svn tag command failed.
    Command output:
    svn: Commit failed (details follow):
    svn: File '/repos/june/tags/foo-1.0.2/foo.bar.org/pom.xml' already exists

Есть какие-нибудь идеи, откуда это берется и как это обойти?

(извините за дублирующий пост - первый был закрыт, потому что я не сформулировал его как вопрос, на который можно ответить.Надеюсь, теперь все в порядке.)

Редактировать
Плагин maven release сам заботится об обработке версии.Поэтому, когда я проверяю путь в репозитории subversion, путь еще не существует.

ПРАВКА 2
@Ben:Я не знаю версию сервера, однако клиент тоже 1.5.2.

Это было полезно?

Решение

Эта проблема устранена в последней версии maven-release-плагин.Добавьте это к своему ПОМПОНУ, чтобы втянуть его внутрь.

<build>
  <pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-release-plugin</artifactId>
        <version>2.0-beta-9</version>
      </plugin>
    </plugins>
  </pluginManagement>
</build>

Проблема, которая была исправлена, заключается в следующем МРЕЛИЗ-375.

Другие советы

Это потому, что вы не увеличили номер версии - 1.0.2 уже существует в вашем репозитории Subversion.

Либо увеличьте свою версию, либо просто удалите тег /repos/june/tags/foo-1.0.2 из вашего репозитория.

Роланд, если ты этого еще не видел, взгляни на сообщение в блоге Джона Смарта об этой проблеме.Хотя сценарий, который он предлагает, неэлегантен, он решает проблему:

http://weblogs.java.net/blog/johnsmart/archive/2008/12/subversion_mave.html

Другое решение - использовать Git.(Я == в настоящее время пишу о Maven и Git)

Потенциально полезные ссылки:

http://weblogs.java.net/blog/johnsmart/archive/2008/12/subversion_mave.html (ранее упоминалось)

http://jira.codehaus.org/browse/MRELEASE-427 (настоящая ошибка?)

http://jira.codehaus.org/browse/SCM-406 (связанная ошибка)

http://olafsblog.sysbsb.de/?p=73 (более новый и, возможно, более полезный пост)

Насколько я знаю, это ошибка в Subversion 1.5 и не связана напрямую с maven.Однако обходной путь, исправленный для меня, заключается в обновлении локального репозитория svn и повторном запуске release:prepare goal.

Я потратил довольно много времени на борьбу с этим.Что-то отличается в SVN 1.5.1+, что прерывает фиксацию тега прямо из рабочей копии - это именно то, что делает Maven.До сих пор многие указывают пальцем на то, кто несет ответственность за устранение проблемы.

Вы можете выполнить "обновление svn" и повторно запустить команду release, но если вы выполняете release:branch , это приведет к тому, что плагин release не вернет ваши POM-файлы в их предыдущее состояние.

Лучшее решение, о котором я знаю, - это вернуться к Subversion 1.5.0.

Это исправлено в новейшей версии плагина 2.0-beta-9

Я наткнулся на этот пост, поскольку у меня возникла проблема со сборкой на сервере, на котором не был установлен svn.

Это помогло:Дженкинс с Subversion

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top