我试图确保从 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/