【问题标题】:Maven test transitive scopeMaven 测试传递范围
【发布时间】:2019-11-02 07:11:30
【问题描述】:

从 maven docs 中,我们得到如果我们的项目 A 的直接依赖项具有范围 test 并且其传递依赖项具有范围 test ,那么该传递依赖项将不会被纳入项目 A 的测试类路径中

[Project A] -> [Direct Dependency of A , say  X (scope test)] -> [Direct dependency of X , say Y (scope test)]

这让我想到了一个场景(可能与否,你决定)

如果我们的项目 A 中的某些测试的执行依赖于项目 X 中的某些测试的代码,那么 maven 将永远无法运行 A 的测试,因为它永远不会在测试类路径中使用 Y。

在这种情况下我们应该怎么做?如果你说这样的场景不可能存在,为什么?

【问题讨论】:

    标签: java maven maven-3 dependency-management


    【解决方案1】:

    通常测试不包含在项目的 jar 文件中(否则这些不是测试,而是项目的一部分)。

    如果您想在另一个项目中重用测试代码,您应该创建一个包含测试类的单独 jar 文件,并将其放在“测试”范围内的依赖项列表中。换句话说,如果你的项目 A 依赖于项目 X,你应该明确指定,不管它是否是测试代码。

    有关它的更多信息,请查看:How to create a jar containing test classes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-23
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-25
      相关资源
      最近更新 更多