关于Maven配置文件和阶段的澄清

时间:2016-12-19 10:28:23

标签: maven docker maven-plugin maven-profiles maven-docker-plugin

在我的maven项目中,我有多个maven配置文件。在每个个人资料中,我都有docker-maven-pluginmaven-failsafe-plugin。这就是我限制目标和阶段的方式。

搬运工-行家-插件

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

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

行家故障安全-插件

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

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

我有每种数据库类型的配置文件(即MySQL,Postgres等)。我想要做的是在每个数据库类型的docker上运行我的集成测试。

我的问题是,我可以使用多个配置文件运行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 个答案:

答案 0 :(得分:0)

我不确定这是否有效,但如果您单独定义每个配置文件,它应该可以正常工作。您定义每个插件两次,每个配置文件一个。执行顺序取决于各种因素。我不知道您在哪里定义了配置文件,但是如果它们在同一个pom中定义,则订单应该是该pom中定义的顺序。有关更多帮助,请参阅https://www.waltercedric.com/index.php?option=com_content&view=article&id=1795&catid=129&Itemid=332