Java 12 中缺少集成测试阶段
Integration-Test Phase Missing in Java 12
我的任务是将使用 Maven 3.0 / Java 8 的项目更新为 Maven 3.6 / Java 12。据我所知,我就是这样做的,更改了各种依赖项。现在 运行 构建 integration-test
阶段似乎丢失了。
例如,在clean verify
期间不再调用以下插件:
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>maven-replacer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>do-magic</id>
<phase>pre-integration-test</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- ... -->
</configuration>
</plugin>
我可以轻松地在构建日志中搜索 do-magic
,因此我可以确认它在 Java 8 中被调用但在 Java 12 中没有被调用(即使可能有一些其他更改我现在不知道)。
调试输出为:
[DEBUG] Goal: com.google.code.maven-replacer-plugin:maven-replacer-plugin:1.4.1:replace (do-magic)
[DEBUG] Style: Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- same as above-->
</configuration>
所以没有关于为什么不执行的信息。
我尝试手动调用目标integration-test
,仍然没有调用插件。也没有其他信息。
我不知道去哪里寻找问题的根源。我什至不知道在哪里禁用这样的集成测试(除了可能 maven.test.skip
,它完全从反应器中删除了测试模块,所以不是那样)。
任何人都可以阐明这个问题吗?
问题不在于 integration-test
阶段被跳过,而是突然 maven-surefire-plugin
决定它也想执行测试。失败了,因为测试需要 pre-integration-test
阶段。
我不知道为什么会突然发生这种情况,所以这是一个再次禁用 Surefire 的伪修复程序:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- We run integration tests with failsafe! -->
<skip>true</skip>
</configuration>
</plugin>
我的任务是将使用 Maven 3.0 / Java 8 的项目更新为 Maven 3.6 / Java 12。据我所知,我就是这样做的,更改了各种依赖项。现在 运行 构建 integration-test
阶段似乎丢失了。
例如,在clean verify
期间不再调用以下插件:
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>maven-replacer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>do-magic</id>
<phase>pre-integration-test</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- ... -->
</configuration>
</plugin>
我可以轻松地在构建日志中搜索 do-magic
,因此我可以确认它在 Java 8 中被调用但在 Java 12 中没有被调用(即使可能有一些其他更改我现在不知道)。
调试输出为:
[DEBUG] Goal: com.google.code.maven-replacer-plugin:maven-replacer-plugin:1.4.1:replace (do-magic)
[DEBUG] Style: Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- same as above-->
</configuration>
所以没有关于为什么不执行的信息。
我尝试手动调用目标integration-test
,仍然没有调用插件。也没有其他信息。
我不知道去哪里寻找问题的根源。我什至不知道在哪里禁用这样的集成测试(除了可能 maven.test.skip
,它完全从反应器中删除了测试模块,所以不是那样)。
任何人都可以阐明这个问题吗?
问题不在于 integration-test
阶段被跳过,而是突然 maven-surefire-plugin
决定它也想执行测试。失败了,因为测试需要 pre-integration-test
阶段。
我不知道为什么会突然发生这种情况,所以这是一个再次禁用 Surefire 的伪修复程序:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- We run integration tests with failsafe! -->
<skip>true</skip>
</configuration>
</plugin>