Плагин Maven Release: запуск определенных групп подготовки и выполнения в некоторых модулях проекта - PullRequest
0 голосов
/ 05 февраля 2019

Для процесса выпуска / подготовки в моем многомодульном проекте я хочу выполнить дополнительные задачи в выбранном наборе модулей (веб-приложений).Например:

pom.xml (parent/root)
|-- common-module/pom.xml
|-- some-webapp/pom.xml
|-- some-other-module/pom.xml
|-- some-other-webapp/pom.xml
|-- (...more modules to follow)

Модуль (-ы) веб-приложений (должен) использовать maven-frontend-plugin для запуска некоторых пользовательских задач npm & grunt (в основном, имитировать, какие проверки ивыпуск модификаций: подготовьте в Java для наших зависимостей JS).

<plugin>
    <artifactId>maven-release-plugin</artifactId>
    <version>${version.release.plugin}</version>
    <configuration>
        <preparationGoals>frontend:grunt@update-static-resource-to-latest-stable frontend:npm@npm-update frontend:npm@npm-update</preparationGoals>
        <completionGoals>frontend:grunt@update-static-resource-to-latest frontend:grunt@check-static-resources-version</completionGoals>
    </configuration>
</plugin>

Пример одной из целей (phase none, чтобы она не выполнялась в любое время):

<execution>
    <id>update-static-resource-to-latest-stable</id>
    <phase>none</phase>
    <goals>
        <goal>grunt</goal>
    </goals>
    <configuration>
        <arguments>latestStable</arguments>
    </configuration>
</execution>

Итак, я (подумал, что мне) понадобятся некоторые подготовительные Цели и Цели завершения для запуска при вызове mvn release:prepare.Любой другой механизм их запуска во время подготовки к выпуску хорош, однако я не хочу / не могу запускать дополнительные команды вручную.

Что я пробовал:

1: Добавляем подготовкуGoals & завершениеGoals в build -секцию конкретного модуля (ов), но любые изменения конфигурации плагина-релиза необходимо вносить в корневой POM.

2: Создание профиль релиза на модуль (webapp-), изменяющий конфигурацию плагина релиза для добавления целей подготовки и завершения, но профили релиза, кажется, используются только во время release:perform.

...