这是情况:
我有 2 个模块,模块 KID 取决于模块 PARENT。我在 PARENT 中有一个测试类,可以在 KID 中使用它来测试类的实现。
为此,我添加了以下依赖项:
<dependency>
<groupId>myGroup</groupId>
<artifactId>PARENT</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
使用 Maven,测试运行良好。
使用 Intellij,(右键单击 java 测试文件夹 + 为 KID 运行“所有测试”),我得到一个 NoClassDefFoundError。问题是两个模块的测试都在运行,但它只使用了孩子的依赖项。
在项目 PARENT 中,我有一个在 KID 中不需要的依赖项:
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.8</version>
<scope>provided</scope>
</dependency>
将范围设置为提供而不是测试将解决我的问题,但它允许主代码使用测试代码。
我可能错过了什么?这是一个错误?