我有Maven Failsafe插件的以下默认配置:
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.20</version>
<executions>
<execution>
<id>default-integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>default-verify</id>
<phase>verify</phase>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
documentation表示默认类路径按顺序包含target/test-classes
和target/classes
目录。但是,当我运行mvn clean install
或mvn integration-test
时,我看不到classes
文件夹作为类路径的一部分。这导致测试失败,因为我从我的源代码中将一个类注入到测试中,并且我得到NoClassDefFound
异常。
这是详细输出:
[DEBUG] test(compact)classpath:test-classes package.jar javax.inject-1.jar cdi-api-1.2.jar ...
正如您所看到的,应该在项目依赖项之前添加classes
文件夹,但事实并非如此。
但是,当我专门运行mvn failsafe:integration-test
目标而不是阶段时,类路径会在classes
之后立即包含test-classes
并且测试成功,这与文档一致。
我对构建过程有什么不了解?为什么运行阶段时类路径不同而不是运行目标?即使在运行阶段时,如何在类路径中获得classes
?