以下是pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.18.1</version>
<configuration>
......
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<phase>integration-test</phase>
</execution>
</executions>
</plugin>
</plugins>
integration-test
阶段执行?integration-test
和verify
目标是否在集成测试期间以及以什么顺序执行?mvn clean verify
时,verify
目标执行了两次?一个在integration-test
期间,一个在verify
期间?修改
鉴于下面的答案和链接文档,这是否意味着当我运行mvn verify
时,插件被调用两次 - 一个在integration-test
阶段和verify
阶段。
答案 0 :(得分:2)
首先,您的给定配置没有意义,导致文档says different:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.18.1</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
微妙的区别是给出了phase
。在您的情况下,您提供了phase
,这意味着将目标integration-test
和verify
绑定到同一个life cycle phase。如果省略我的示例中的phase
(从文档中复制),则意味着这两个目标将绑定到插件开发人员认为有用的生命周期阶段。这意味着将integration-test
目标与integration-test
生命周期阶段和verify
目标绑定到verify
生命周期阶段。
您可以在文档中看到目标绑定的阶段,例如here(摘自文档):
最后一行将为您提供默认情况下插件开发人员决定绑定插件目标的生命周期阶段的信息。
现在回答你的问题:
以这种方式给出它们意味着在同一生命周期阶段(集成测试)中执行这两个目标。订单由pom文件中的订单给出。
是否会执行验证目标(绑定验证阶段) 整合测试阶段?
没有。基于给定的配置,验证目标是 NOT 绑定以验证生命周期阶段,导致它被绑定到integration-test
阶段。