2013-04-24 6 views
6

Я столкнулся с проблемой с выпуском континуума: подготовить фазу, которая терпит неудачу в Д-проверке-модификации шаг с ошибкой:Maven релиз: подготовка: Невозможно подготовить релиз, потому что у вас есть локальные изменения

[ERROR] org.apache.maven.shared.release.ReleaseFailureException: не удается подготовить релиз, потому что у вас есть локальные изменения: [pom.xml: модифицированный]

Что я сделал:

  1. Я совершил все мои изменения (* .java и pom.xml) в SVN
  2. я сделал сборку проекта в Continuum
  3. я начал подготовку выпуска.

Я знаю, что модификации scm-check вызывают класс ScmCheckModificationsPhase, который проверяет отсутствие локальных изменений по сравнению с тем, что находится в SCM.

Я понимаю, что если я работаю только с Maven, если есть локальные изменения или какие-либо различия между локальным кодом и SVN, например, release: подготовка не будет работать, поскольку сначала проверяет изменения; но работа с Continuum, я не знаю, почему это должно быть differencse между локальным кодом и SVN-репозиторием? Поэтому я не знаю, почему релиз: подготовить цель в Continuum стоит перед этой проблемой.

Пример моего ПОМ:

<build> 
     <plugins> 
    ... 
     <plugin> 
      <artifactId>maven-release-plugin</artifactId> 
      <configuration> 
       <useReleaseProfile>false</useReleaseProfile> 
      </configuration> 
     </plugin> 

    ...  
     </plugins> 

    </build> 


<scm> 
    <connection>scm:cvs:ext:url:/var/cvs:application_name</connection>   <developerConnection>scm:cvs:ext:url:/var/cvs:application_name</developerConnection> 
</scm> 

..... 
</project> 

В родительском pom.xml:

... 
    <pluginManagement> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-release-plugin</artifactId> 
      <version>2.2.2</version> 
      <configuration> 
      <useReleaseProfile>false</useReleaseProfile> 
      <goals>deploy</goals> 
      <arguments>-Prelease</arguments> 
      </configuration> 
     </plugin> 
..... 

Для получения дополнительной информации, сборка и выпуск проекта не всегда работает нормально, до сих пор.

Существует решение обхода, которое решило мою проблему, но я все еще пытаюсь понять происхождение этой проблемы.

Обводной решение:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.2.2</version> 
    <configuration> 
    ... 
    <checkModificationExcludes> 
     <checkModificationExclude>pom.xml</checkModificationExclude> 
    </checkModificationExcludes> 
    </configuration> 
</plugin> 
+0

Вы проверили командную строку вне континуума? – khmarbaise

+0

Сравнение изменений, сделанных в pom.xml, может дать вам представление о том, что произошло. Не могли бы вы добавить эту информацию к своему вопросу? – cahen

+0

@khmarbaise: На самом деле нет, мне нужно установить Черепаху для этого, потому что Maven собирается жаловаться на то, что команда «svn» не распознается. У вас есть идеи, почему Continuum будет жаловаться на проблемные различия между SCM и локальным кодом? –

ответ

9

Я могу подтвердить, что добавление модуля или его настройки, чтобы исключить проверку pom.xml сделал работу:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <configuration> 
     <checkModificationExcludes> 
      <checkModificationExclude>pom.xml</checkModificationExclude> 
     </checkModificationExcludes> 
    </configuration> 
    </plugin> 
7

Удаление target папку моего проекта от источника для меня эта проблема исправлена.