maven - 如何为 Maven 项目指定测试 jar 的传递依赖关系?

标签 maven unit-testing dependency-management transitive-dependency

我试图确保从 Maven 发布的测试 jar 具有正确的传递依赖项。

例如,测试 jar 不会在生成时依赖于非测试 jar。

类似地,假设 AAA 发布了一个测试 jar,并且 BBB 包含 AAA 测试 jar 的测试范围依赖项。在 CCC 的测试中,当我使用 BBB 的 test-jar 中的类(该类使用 AAA 的 test-jar 中的类)时,我在 AAA 的 test-jar 中的类上收到“未找到类”错误 - 即,BBB 的测试的传递依赖项是根本没有正确记录。

有什么方法可以使 BBB 的测试 jar 正确地引入传递依赖项吗?

我在 https://github.com/nkronenfeld/transitive-test-dependencies 中有所有这些的示例代码

对于 BBB 的普通 jar 和 AAA 的 test-jar,CCC/pom.xml 中有两个被注释掉的依赖项,这两个依赖项似乎都不需要。然而,如果没有这两者,CCC 的测试目标就无法运行。

最佳答案

正如 khmarbaise 所说:测试依赖关系是不可传递的。如果 A 声明对 B 的测试依赖项,则意味着 A 需要 B 来运行其测试。 A 的用户不需要知道这一点。如果测试 jar 需要运行某些东西,它应该声明对此的编译依赖。

关于maven - 如何为 Maven 项目指定测试 jar 的传递依赖关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48733920/

相关文章:

unit-testing - 测试 TLV 协议(protocol)

maven - 在 maven 2 依赖树中解释 "omitted for conflict"

java - 添加 JBoss AS 7 库作为 Gradle 依赖项

maven - 如何将angular2与spring boot一起使用

java - 使用 spotify/dockerfile-maven-plugin 推送 docker hub 时出错

Spring 启动 : How to specify the PasswordEncoder?

unit-testing - Spock 未检测到方法调用

javascript - Jasmine 中的全局 `beforeEach`?

maven - Maven Central 的 Nexus 索引不是最新的(新安装)

visual-studio - visual studio 扩展如何在引用 TFS 客户端 dll 时同时针对 2013 和 2015