【问题标题】:Test failures on dependent maven projects依赖maven项目的测试失败
【发布时间】:2012-08-15 05:19:53
【问题描述】:

我有多个项目,其中项目 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 找不到配置文件。

我最好的猜测是,在运行“包”目标时,项目 X 会针对项目 Y 的已构建 JAR 而不是其 .class 文件运行。我对么?我可以做些什么来解决这个问题?

【问题讨论】:

  • 为项目 X 创建另一个配置文件怎么样?有什么限制阻止这样做吗?
  • 我在每个项目中有很多配置文件,它们只与该项目范围相关。我不想把大量的配置文件复制到多个项目中弄得一团糟

标签: java testing maven build dependencies


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-25
    • 2014-10-20
    • 2020-10-28
    • 2021-04-18
    • 2012-03-02
    • 1970-01-01
    • 2018-04-19
    • 2010-12-16
    相关资源
    最近更新 更多