java - Maven 中提供的和运行时的传递范围

标签 java maven maven-3

根据maven resolution of transitive scope ,

如果 A 是我们的项目,它直接依赖于 X,其范围是相对于 A 提供的。

Maven 告诉 X 与范围运行时的任何依赖关系(直接或传递)都将被解析为范围 provided w.r.t A。

设 Y 是 X 的直接依赖项,其范围运行时 w.r.t 到 X。

A --> X(范围 = 提供) --> Y(范围 = 运行时)

现在,Y 将解析为 A 的提供范围

观察: A 的运行时类路径中永远不需要 Y。只有 A 的测试类路径中才需要它。事实上,如果您将 Y 作为 X 的传递依赖项,仅将其范围保持为运行时,它仍然不会在 A 的运行时类路径中使用。它将仅在测试类路径中使用。

问题:那么,我们不应该说 -

如果 A 是我们的项目,它直接依赖于 X,其作用域是相对于 A 提供的,那么 X 与作用域运行时的任何依赖关系(直接或传递)都将解析为作用域 test w.r.t A?

最佳答案

人们肯定会争辩说,这些依赖项可以更好地转换为“测试”范围。

但我怀疑这方面是否会有任何改变。

关于java - Maven 中提供的和运行时的传递范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56793310/

相关文章:

java - 为什么这个java递归函数不能正常工作?

java - 具有可选多个边界的泛型,例如列表<?扩展整数或字符串>

java - 打印(获取打印输出)数组列表中的元素

java - Spring Boot Jersey : allow Jersey to serve static content

maven - 防止 Flyway Maven 插件下载旧的 slf4j jar

java - Maven 3 文档

java - 在常规 Maven 构建中使用来自 Eclipse p2 存储库的依赖项?

maven - 在多模块中单独发布 Artifact - 聚合器 maven 项目

java - 单击回收器 View

maven - 如何从 maven-war-plugin 获取生成的 MANIFEST.MF 文件?