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