我有多个项目,其中项目 X 依赖于项目 Y。 项目 X 上的测试使用读取配置文件的项目 Y。 ( X --> Y --> 配置文件) 我使用 maven-jar-plugin 从 JAR 中排除了一些配置文件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<inherited>true</inherited>
<configuration>
<excludes>
<exclude>*.xml</exclude>
<exclude>*.*conf*</exclude>
<exclude>*.*prop*</exclude>
</excludes>
</configuration>
</plugin>
在我的项目上运行“Maven 测试”时一切正常,所有测试均成功。 但是当运行“Maven 包”时,项目 X 测试失败,因为项目 Y 找不到配置文件。
我最好的猜测是,在运行“package”目标时,项目 X 针对项目 Y 的已构建 JAR 而不是其 .class 文件运行。我对么?我该怎么做才能解决这个问题?
最佳答案
也许您会对 the maven-jar-plugin page 的如何创建包含测试类的 jar 部分感兴趣.
想法是为您的项目 Y 创建两个不同的 jar:除了当前打包的 jar 之外还有一个测试 jar。您执行了两次 maven-jar-plugin,一次用于当前 jar,一次用于测试 jar,其配置文件未被过滤。
要允许项目 X 引用项目 Y 的测试 jar,您还需要在测试 范围 中向该 jar 添加依赖项。
请注意,该页面建议另一种方法,即创建另一个专用于您的测试类的 Maven 项目,您不会为此排除任何配置文件。
关于java - 依赖 Maven 项目的测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12028154/