Как отключить плагин maven для проверки локальных изменений? - PullRequest
15 голосов
/ 04 февраля 2012

Я использую плагин Maven Release.В моем pom существует и Ant задача, которая автоматически исправляет некоторые свойства файлов с дополнительной информацией.Это исправления не должны быть в SCM.Но maven не заканчивает успешно для ошибки:

Cannot prepare the release because you have local modifications 

Можно ли установить некоторые параметры, чтобы не проверять локальные изменения?

Спасибо.

Ответы [ 5 ]

31 голосов
/ 04 февраля 2012

Я не очень знаком с maven-release-plugin, но я вижу, что есть свойство checkModificationExcludes , которое вы можете использовать для своих целей.Конфиг должен быть примерно таким:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-release-plugin</artifactId>
  <version>2.2.2</version>
  <configuration>
    ...
    <checkModificationExcludes>
      <checkModificationExclude>file_1</checkModificationExclude>
      <checkModificationExclude>dir_1/file_2</checkModificationExclude>
    </checkModificationExcludes>
  </configuration>
</plugin>
3 голосов
/ 18 марта 2014

Мы пытались запустить релиз от jenkins, но он всегда терпел неудачу с одним и тем же сообщением ...

Cannot prepare the release because you have local modifications 

... что было странно, потому что мы используем jenkins, чтобы проверить и собрать последнюю версиюИсходные тексты перед выпуском.

Мы наконец выяснили, что проблема заключалась в том, что мы строили на узле Windows, и некоторые пути к файлам были слишком длинными, что заставило плагин maven-release-plugin жаловаться на локальные изменения.Переход на Linux-узел решил эту проблему.

2 голосов
/ 22 апреля 2015

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

1 голос
/ 27 июня 2013

@ Ответ Андрея Логвинова находится на полпути. Другая половина упоминается в этом :

Я обнаружил, что сравнение в org.apache.maven.shared.release.phase.ScmCheckModificationsPhase.execute () удаляет путь и сравнивает только имена файлов. Итак, я изменил мой пом, чтобы игнорировать application.properties вместо свойств $ {thewholepath} / Applications. И вот, удачи.

По какой-то странной причине вы не можете включить пути в этот тег. Вы можете указать только имена файлов.

1 голос
/ 05 февраля 2012

Я бы предложил исправить ваш процесс сборки, чтобы он не «исправлял» файлы, находящиеся под SCM.Есть несколько способов сделать это, самый простой - скопировать файлы свойств в какой-либо каталог в ${project.build.outputDirectory} и запустить скрипт Ant на этих файлах, а не на оригиналах

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...