Гудзон Maven релиз Subversion - PullRequest
       44

Гудзон Maven релиз Subversion

3 голосов
/ 08 февраля 2012

Я пытаюсь в течение почти 2 дней запустить плагин релиза с Maven и Hudson. Теперь я установил svn-клиент (не знаю, зачем мне это нужно, поскольку у Хадсона есть плагин SVN), и этот плагин может запускать команды "mvn". Теперь после перезапуска Hudson и работы я получаю следующую ошибку:

org.apache.maven.lifecycle.LifecycleExecutionException: Не удалось выполнить цель org.apache.maven.plugins: maven-release-plugin: 2.0: prepare (default-cli) в структуре проекта: невозможно проверить наличие локальных изменений Сообщение провайдера: Команда svn не выполнена. Вывод команды: svn: E155036: пожалуйста, смотрите команду 'svn upgrade' svn: E155036: рабочая копия 'C: .hudson \ jobs \ Project 1 \ workspace' слишком старая (формат 8, созданный Subversion 1.4)

Что я здесь не так делаю? Похоже, что я использую этот плагин сильно неправильно, поскольку я перехожу из одной ошибки в другую.

Спасибо за вашу помощь!

Ответы [ 3 ]

2 голосов
/ 08 февраля 2012

Рабочие копии в SVN основаны на используемой вами версии svn-клиента.Со временем они могут оказаться несовместимыми (и это нормально, поскольку они всегда дают вам систему с простым обновлением, обычно это происходит автоматически), однако переход от sVN v 1.4 к последнему (1.7) не даст вам обычного прелести автоматического обновления,На самом деле, получение исходной проверки с использованием SVN 1.4, вероятно, в любом случае является плохой идеей, поскольку она древняя.

Итак, вам необходимо выяснить, что делает исходная проверка.Если это плагин, то сбросьте его.Я не думаю, что в текущей версии Hudson есть такой старый svn-клиент, даже если они еще не обновили его до 1.7, он будет как минимум на 1.6.x.

Проверьтеплагин maven, чтобы узнать, сколько ему лет, и плагин svn (и ваша установка hudson).

2 голосов
/ 09 февраля 2012

Я только что разобрался с релизами Maven в Jenkins, я чувствую твою боль.

Другие уже ответили на ваш вопрос: вам нужно убедиться, что все ваши SVN-клиенты, работающие с одной и той же рабочей копией, имеют одинаковую версию.

Но чтобы ответить на ваш мета-вопрос о том, зачем вам нужен клиент SVN для командной строки, это потому, что maven-release-plugin не просто извлекает данные из SVN, а фактически commit и tag revisions, и Хадсон не предоставляет механизма для этого. Кроме того, maven-release-plugin не может зависеть от того, что поставляет Hudson, поскольку Maven используется во многих других контекстах (например, из командной строки), где Hudson недоступен.

Если на самом деле ваш вопрос заключается в том, почему maven-release-plugin не может использовать чистый Java SVN-клиент вместо использования клиента командной строки, то ответ заключается в том, что это связано с проблемой лицензирования ( библиотека SVNKit может не распространяется под лицензией ASF ). Однако есть реализация, которая называется maven-scm-provider-svnjava, которую вы можете использовать. Я сам не пробовал, так что YMMV.

0 голосов
/ 08 февраля 2012

Версия клиента Subversion для Windows, который вы используете локально, вероятно, является более высокой версией, чем ваша TortoiseSVN ... Поиск Sourceforge для "Subversion для Windows", чтобы найти более старые версии.

...