Разъяснения по профилям и фазам Maven

В моем проекте Maven у меня есть несколько профилей Maven. В каждом профиле у меня есть docker-maven-plugin а также maven-failsafe-plugin, Вот как я связал цели и этапы.

докер-Maven-плагин

<phase>pre-integration-test</phase>
<goals>
   <goal>start</goal>
</goals>

<phase>post-integration-test</phase>
<goals>
   <goal>stop</goal>
   <goal>remove</goal>
</goals>

Maven-безотказный-плагин

<phase>integration-test</phase>
<goals>
   <goal>integration-test</goal>
</goals>

<phase>verify</phase>
<goals>
   <goal>verify</goal>
</goals>

У меня есть профили для каждого типа базы данных (например, MySQL, Postgres и т. Д.). То, что я пытаюсь сделать, это запустить мои интеграционные тесты на докере с каждым типом базы данных.

Мой вопрос заключается в том, могу ли я запустить mvn с несколькими профилями (т.е. mvn clean install -P local-postgres,local-mysql), чтобы каждый профиль выполнялся один за другим? Мое требование - не устанавливать 2 док-контейнера одновременно.

Я заметил, что pre-integration-test фазы всех профилей запускаются первыми и завершаются с ошибкой The name "/apim-postgres" is already in use by container xxxxx, Это то, как должны работать maven фазы, когда дается несколько профилей?

Есть ли способ, которым я могу выполнить мое требование?

1 ответ

Я не уверен, будет ли это работать, но если вы определяете каждый профиль независимо, он должен работать. Вы определяете каждый плагин дважды, по одному для каждого профиля. Порядок исполнения зависит от различных факторов. Я не знаю, где вы определили профили, но если они определены в том же поме, то порядок должен быть тот, который определен в этом поме. См. https://www.waltercedric.com/index.php?option=com_content&view=article&id=1795&catid=129&Itemid=332 для получения дополнительной помощи.

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