Я запускаю контейнер postgres с плагином maven docker, а затем использую БД для создания некоторых артефактов на более поздних этапах.
<plugin>
…
<artifactId>docker-maven-plugin</artifactId>
…
<configuration>
<images>
<image>
...
<name>postgres:11</name>
...
</image>
</images>
</configuration>
<executions>
<execution>
<id>start-postgres-container</id>
<phase>generate-sources</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>stop-postgres-container</id>
<phase>process-sources</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
Проблема, с которой я сталкиваюсь, заключается в том, что когда возникает какая-то ошибка с любыми операциями между start
и stop
выше, тогда maven покидает работающий контейнер, и последовательные попытки сборки завершатся неудачей, поэтому сначала нужно вручную поместить оставшийся контейнер.
Есть ли способ/плагин в maven, чтобы указать какое-то действие/фазу finally
? Чтобы в случае сбоя в сценариях сборки можно было освободить некоторые ресурсы, которые, возможно, уже были зарезервированы?
jooq-codegen-maven
). На этапе проверки мы используем тестовые контейнеры для целей тестирования, в т.ч. Настройка БД. Но помимо того, как мы его используем, проблема, которую я описываю, будет общей проблемой дляdocker-maven-plugin
, которая имеет цель выполненияstop
, в то время как в MVN, похоже, нет возможности полагаться на нее в скрипте сборки. - person alwi   schedule 13.11.2020