2

我有多个项目,其中项目 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 文件运行。我对么?我能做些什么来解决这个问题?

4

1 回答 1

0

也许您可能会对如何创建包含maven-jar-plugin 页面的测试类的jar 部分感兴趣。

这个想法是为您的项目 Y 创建两个不同的 jar:除了当前打包的 jar 之外的一个测试 jar。您有两个 maven-jar-plugin 执行,一个用于您当前的 jar,另一个用于 test-jar,其配置文件未被过滤。

要允许项目 X 引用项目 Y 的 test-jar,您还需要在 test scope中向此 jar 添加依赖项。

请注意,该页面建议另一种方法,即创建另一个专用于您的测试类的 Maven 项目,您不会排除任何配置文件。

于 2012-08-19T20:31:43.697 回答