java - Maven Failsafe Plugin 未将目标/类添加到类路径
问题描述
我对 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>
该文档指出,默认类路径按顺序包括target/test-classes
和target/classes
目录。但是,当我运行mvn clean install
or时mvn integration-test
,我没有将classes
文件夹视为类路径的一部分。这会导致测试失败,因为我将源代码中的一个类注入到测试中,并且出现NoClassDefFound
异常。
这是详细的输出:
[调试] test(compact) 类路径:test-classes package.jar javax.inject-1.jar cdi-api-1.2.jar ...
如您所见,该classes
文件夹应该在项目依赖项之前添加,但事实并非如此。
但是,当我专门运行mvn failsafe:integration-test
目标而不是阶段时,类路径会classes
立即包含test-classes
并且测试成功,这与文档一致。
我对构建过程有什么不了解?为什么运行阶段与运行目标时类路径不同?classes
即使在运行阶段时,我如何才能进入类路径?
解决方案
推荐阅读
- reactjs - 背景图像在 Safari v14 Catalina 上不起作用
- python - MS Learn Python - 代码未在 Visual Studio 中运行(新手)
- python - Tkinter:将文本条目作为按下按钮时调用的函数的参数传递
- laravel - Laravel 禁用调试模式
- json - 是什么导致此 JSON 出现意外的 EOF?
- c# - Xaml 属性的具有多个静态类的常量
- php - 如何添加逗号id=price2 中的值
- reactjs - Reactjs问题路由与URL中的参数
- azure-cosmosdb - Azure Purview 扫描 cosmos 数据库以发现数据资产有时会失败
- c - 忽略 C 中用 strstr 读取的行中的注释