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

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

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

Это возможно?

Спасибо

2 ответа

Решение

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

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

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

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

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

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

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

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

Ронен

Другие вопросы по тегам