2016-07-25 4 views
1

Here говорится:Заказ Maven плагина в исполнении

так Maven 3.0.3, для двух модулей, связанных с одной и той же фазе, порядок исполнения такой же, как и порядок, в котором вы определить их

Я использую Maven 3.3.9 и я могу видеть, что порядок выполнения не всегда определяется порядок плагинов в POM.

Я следующие плагины связаны с жизненным циклом фаз Maven:

pre-integration-test: maven-resources-plugin, 3.0.1   - prepares certain files 
integration-test:  maven-failsafe-plugin, 2.19.1   - runs Cucumber-jvm tests 
post-integration-test: exec-maven-plugin (id: cleaner), 1.5.0 - stops certain processes 
         maven-cucumber-reporting, 2.4.0   - generates rich HTML report 
         exec-maven-plugin (id: converter), 1.5.0 - converts rich HTML report to a light version 

Трех плагин, присоединенных к фазе «пост-интегрально-тест» перечислены здесь в порядке их определены в POM , Если все тесты проходят без ошибок (на этапе «интеграция-тест») - эти плагины выполняются так, как ожидалось: в том порядке, в котором они определены в POM. Но если из тестов - тогда я получаю следующую ситуацию:

  • третий плагин запускается первый - «EXEC-Maven-плагин (ID: конвертер)». Он не находит «богатый HTML-отчет» для преобразования и сбоя.
  • После этого запускается второй плагин - «maven-oucumber-reporting». Он успешно создает «богатый HTML-отчет».
  • И первый плагин - «exec-maven-plugin (id: cleaner)» - никогда не запускается.

Одна странная вещь больше: хотя «Maven-огурец-отчетов» плагин генерирует богатый отчет HTML успешно, я вижу следующее в файле журнала: «Не удалось выполнить голевые Maven-огуречный-отчетность: 2.4.0 : сгенерировать (выполнение) по проекту ...: обнаружена ошибка: СТРОГО НЕИСПРАВНО ".

Если я комментирую 2-й и 3-й плагины в POM, то оставшийся плагин («exec-maven-plugin (id: cleaner)») успешно выполняет . В этом случае я вижу следующее в файле журнала: «Не удалось выполнить команду maven-failafe-plugin: 2.19.1: проверить (по умолчанию) в проекте ...: имеются ошибки тестирования«. Ну, это сообщение вполне ожидаемо.

ВОПРОС: Почему плагины, связанные с одной и той же фазе, не выполняются в порядке, они определены в POM (но только тогда, когда предыдущая фаза не удалось)?

+1

Вы можете поделиться разделом 'pom.xml'? –

+0

Это потенциально связано с [этим SO q/a] (http://stackoverflow.com/questions/37434109/maven-run-plugin-twice-during-a-phase-interleaved-with-another-plugin). О «эти плагины выполнены как ожидалось», вы уверены в этом? –

+0

Эта часть около 6000 символов - слишком длинная для этого комментария. И приложения здесь не допускаются. Да, когда все тесты проходят без ошибок - эти плагины выполняются так, как ожидалось: в том порядке, в котором они определены в POM. –

ответ

1

Ну, я нашел ответ сам. Наличие двух определений одного и того же плагина (exec-maven-plugin) является лишь частью проблемы: объясняет неправильный порядок выполнения, но не объясняет, почему очиститель никогда не запускается. Последняя проблема имеет следующее объяснение: плагин maven-cucumber-report имеет код, который предотвращает выполнение всех последующих этапов жизненного цикла Maven, если сборка завершилась ранее. К счастью, этот код можно отключить в параметрах - см. this issue at GitHub.

+0

У вас может быть два исполнения одного и того же плагина в разных фазах ... Это зависит от того, как вы назвали Maven? – khmarbaise

Смежные вопросы