Подтвердить что ты не робот

Как я могу выполнить несколько плагинов maven в течение одной фазы и установить их соответствующий порядок выполнения?

Я хотел бы разбить определенные фазы в жизненном цикле maven на подфазные фазы. Я хотел бы контролировать поток выполнения от одной подфазы к другой, вроде как с зависимостями ant.

Например, я хотел бы использовать плагин NSIS для упаковки моего проекта в установщик на этапе пакета, ПОСЛЕ того, как мой проект был упакован в военный файл. Я хотел бы сделать все это на фазе упаковки.

Возможно ли это?

Спасибо

4b9b3361

Ответ 1

Плагины, привязанные к одной и той же фазе , должны быть выполняться в том же порядке, что и в POM. При определенных обстоятельствах (например, если вы дважды привязываете один и тот же плагин к фазе, например, плагин antrun), это может не произойти, но это ошибка (см. MNG-2258 и соответствующий вопрос MNG-3719).

Ответ 2

У меня была та же проблема. посмотрите Как выполнить упорядоченные задачи в Maven2 build. по какой-то причине разные цели, связанные с фазой, хранятся в карте хэша или в другой неупорядоченной структуре, что делает порядок выполнения случайным. мое решение заключалось в том, чтобы распространять задачи на разные этапы, но я не думаю, что в вашем случае есть много внимания (упаковка nsis не является предварительным тестом интеграции). вы можете сделать одно из следующих действий:

1) попробуйте свою удачу и посмотрите, заставляет ли Maven правильный порядок для вас (вы, наверное, уже это пробовали)

2) использовать автономный плагин - запустить цель за пределами жизненного цикла. что-то вроде:   mvn package org.codehaus.mojo: nsis-maven-plugin: 1.0: компиляция.

3) разделите их на модуль: родительский pom, содержащий два вспомогательных модуля, один - ваш военный проект, а другой для проекта nsis.

4) используйте собственный жизненный цикл, изменив тип, в вашем случае вы можете использовать "exe". это делается с помощью пользовательского расширения плагина (руководство по использованию расширения)

5) используйте jetspeed-mvn-maven-plugin. Я никогда не использовал его, но он, по-видимому, имеет отношение к вашим потребностям.

надеюсь, что это даст вам новые идеи.

Ронен