Допустим, моя стандартная конфигурация в Maven:
- компилировать, тестировать и упаковывать - делайте как обычно
- pre-integration-test:
- Generate DB schema scripts (maven-antrun-plugin with concat)
- Запустите эти скрипты в БД (sql-maven-plugin)
- Запустите пользовательскую программу Java для заполнения БД данными (exec или antrun)
- Запустите сервер из jar (maven-antrun-plugin, потому что exec не будет разветвляться)
- интеграционный тест: запускать тесты, используя сервер, работающий из jar
- постинтеграционный тест: остановить сервер (exec)
При обычном пути выполнения он работает просто отлично (кроме того, ошибки по модулю в заказе плагинов Maven).
Теперь я хотел бы иметь одну команду только для создания и выполнения сценариев схемы БД и другую команду только для запуска программы Java для заполнения базы данных.
До сих пор я полагал, что могу поместить install-schema, populate-db и start-jetty в их собственные профили, а затем:
mvn pre-integration-test -Pinstall-schema
Это плохо, потому что он все равно будет запускать все предыдущие фазы, и я действительно не хочу компилировать, тестировать и упаковывать для него.
Можно ли как-то запускать эти «вещи» (несколько исполнений плагинов, профиль) изолированно, игнорируя жизненный цикл или пропуская compile-test-package?