有两个目标绑定到默认Maven生命周期的测试阶段。第一个目标(在pom.xml中的出现顺序)是:
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.4.1</version>
<executions>
<execution>
<id>update</id>
<phase>test</phase>
<goals>
<goal>update</goal>
</goals>
</execution>
</executions>第二个问题是:
<artifactId>maven-surefire-plugin</artifactId>
<version>2.7.1</version>
<executions>
<execution>
<id>default-test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>在测试阶段,首先执行的是尽责插件,这与Maven 3 FIFO在同一阶段的目标顺序相矛盾。我证实了目标在有效的pom中具有相同的顺序。是否有可能其中一个插件正在覆盖默认顺序?为什么万无一失的插件要在液体基插件之前执行?
发布于 2015-11-02 12:22:20
Maven按照POM中定义的目标的顺序执行这些目标是正确的,但是在这种特殊情况下,第二次执行使用了default-test标识符,它具有一个special meaning。
我现在找不到任何关于这种行为的参考,但是将您的<id>更改为其他东西将恢复您所期望的行为。
但是,对于这种特殊情况,更改id将使maven-surefire-plugin执行两次:默认情况下它已经执行,添加一个执行( id与default-test不同)将添加另一个执行,而不是覆盖默认的执行。
https://stackoverflow.com/questions/33477314
复制相似问题