我想要我的"预集成测试"阶段是按照这个特定的顺序执行目标。
阶段:预集成测试
使用Maven 3有没有办法做到这一点?
我面临的问题是" maven-antrun-plugin:run" 1& 2 将始终一个接一个地运行,因为它们是在同一个插件元素中定义的:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>display-port</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<echo>Displaying value of 'tomcat.http.port' property</echo>
<echo>[tomcat.http.port] ${tomcat.http.port}</echo>
</target>
</configuration>
</execution>
<execution>
<id>wait-for-startup</id>
<phase>pre-integration-test</phase>
<configuration>
<target>
<sleep seconds="10" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
现在,我发现这样做的唯一方法是复制&#34; maven-antrun-plugin:&#34; pom文件中的插件元素。 但这给我一个警告
'build.plugins.plugin.(groupId:artifactId)' must be unique but found duplicate declaration
对于这个问题的范围,我不是在寻找一种解决方法,例如更改&#34; display-port&#34;的插件。或者&#34;等待启动&#34;或者改变目标的阶段。
我只想了解我想做的事情是否可行。
答案 0 :(得分:0)
如果多个执行具有相同的阶段,那么第一个执行将是id为default-something的内置的(例如maven-compiler-plugin),然后其他执行将依次执行它们出现在您的 pom 文件中。