我有一个项目X依赖于项目Y的多个项目。 项目X上的测试使用项目Y来读取配置文件。 (X - > Y - > configfile) 我使用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无法找到配置文件。
我最好的猜测是,在运行“包”目标时,项目X针对已经构建的项目Y的JAR而不是其.class文件运行。我对么?我该怎么做才能解决这个问题?
答案 0 :(得分:0)
也许您可能会感兴趣的是如何创建包含the maven-jar-plugin page的测试类的jar。
我们的想法是为您的项目Y创建两个不同的jar:除了当前打包的jar之外,还有一个测试jar。你有两个maven-jar-plugin的执行,一个用于你当前的jar,一个用于test-jar,不会过滤配置文件。
要允许项目X引用项目Y的测试jar,您还需要在test scope 中为此jar添加依赖项。
请注意,该页面提供了另一种方法,其中包括创建专用于测试类的另一个Maven项目,您不会排除任何配置文件。