Java 12中缺少集成测试阶段

时间:2019-04-18 06:37:27

标签: java maven

我的任务是将Maven 3.0 / Java 8的项目更新为Maven 3.6 / Java12。据我所知,我所做的就是更改各种依赖关系。现在,运行构建时,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除外,它从反应堆中完全删除了测试模块,所以不是那样)。

有人可以阐明这个问题吗?

1 个答案:

答案 0 :(得分:0)

问题不是不是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>