以下是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
阶段。
首先你给出的配置没有意义,因为文档说不同:
<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
绑定到相同的生命周期阶段。如果你省略了phase
,就像我的例子一样(从文档中复制),这意味着这两个目标将绑定到插件开发人员认为有用的生命周期阶段。这意味着将integration-test
目标绑定到integration-test
生命周期阶段,将verify
目标绑定到verify
生命周期阶段。
您可以在文档中看到目标绑定到的阶段,如下所示(摘自文档):
- 需要执行一个Maven项目。
- 要求在scope: test中工件的依赖解析。 目标是线程安全的,并支持并行构建。默认绑定到生命周期阶段:integration-test。
最后一行会告诉你插件开发者决定将插件目标默认绑定到哪个生命周期阶段。
现在回答你的问题:
以这种方式给出它们意味着在相同的生命周期阶段(集成测试)中执行这两个目标。顺序由pom文件中的顺序给出。
是否验证目标(绑定到验证阶段)将在其中执行集成测试阶段吗?
。根据给定的配置验证目标是NOT绑定到验证生命周期阶段,因为它绑定到integration-test
阶段。