为集成阶段配置的 Maven 配置文件是否在构建生命周期中执行?
does maven profile configured for integration phase execute during build life cycle?
这是我项目
中pom.xml
的浓缩片段
<profiles>
<profile>
<id>run-tests</id>
<build>
<plugins>
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.2</version>
<executions>
<execution>
<phase>pre-integration-test</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
......
</includes>
<replacements>
<replacement>
.......
</replacement>
</replacements>
</configuration>
</plugin>
<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>
</build>
</profile>
</profiles>
我有两个问题:
1) 当我执行 mvn clean package -Prun-tests
时,会发生什么?我预计这些插件目标中的 none 会在此处执行,因为它们绑定到 integration-test
阶段。但是我看到这些目标被执行了,为什么?
2) 在 execution
街区进两球是什么意思?请参阅上文 failsafe-plugin
谢谢
部分答案:
1)不行。除非您还在主构建部分中将这些插件配置为 运行 分阶段打包。
您如何确定插件具有 运行? maven 输出中是否有如下内容?
[INFO] --- maven-failsafe-plugin:2.18.1:integration-test (default)
[INFO] --- maven-failsafe-plugin:2.18.1:verify (default)
2) 这意味着这两个目标 (mojos) 将在集成测试阶段执行。首先是集成测试目标,紧接着是验证目标。
评论:集成测试目标默认绑定到集成测试阶段,而验证目标绑定到验证阶段。所以你可以这样配置故障安全插件:
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
注意省略了相位
这是我项目
中pom.xml
的浓缩片段
<profiles>
<profile>
<id>run-tests</id>
<build>
<plugins>
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.2</version>
<executions>
<execution>
<phase>pre-integration-test</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
......
</includes>
<replacements>
<replacement>
.......
</replacement>
</replacements>
</configuration>
</plugin>
<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>
</build>
</profile>
</profiles>
我有两个问题:
1) 当我执行 mvn clean package -Prun-tests
时,会发生什么?我预计这些插件目标中的 none 会在此处执行,因为它们绑定到 integration-test
阶段。但是我看到这些目标被执行了,为什么?
2) 在 execution
街区进两球是什么意思?请参阅上文 failsafe-plugin
谢谢
部分答案:
1)不行。除非您还在主构建部分中将这些插件配置为 运行 分阶段打包。
您如何确定插件具有 运行? maven 输出中是否有如下内容?
[INFO] --- maven-failsafe-plugin:2.18.1:integration-test (default)
[INFO] --- maven-failsafe-plugin:2.18.1:verify (default)
2) 这意味着这两个目标 (mojos) 将在集成测试阶段执行。首先是集成测试目标,紧接着是验证目标。
评论:集成测试目标默认绑定到集成测试阶段,而验证目标绑定到验证阶段。所以你可以这样配置故障安全插件:
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
注意省略了相位