依赖范围不仅可以控制依赖与三种 classpath 的关系,还对传递性依赖产生影响。

假设 A 依赖于 B,B依赖于 C,我们说 A 对于 B 是第一直接依赖,B 对于 C 是第二直接依赖,A 对于 C 是传递依赖。

第一直接依赖的范围和第二直接依赖的范围决定了传递性依赖的范围。

下面最左一列表示第一直接依赖范围,最上面一行表示第二直接依赖范围,中间的交叉单元格则表示传递性依赖范围。

  compile test provided runtime
compile compile - - runtime
test test - - test
provided provided - provided provided
runtime runtime - - runtime

当第二直接依赖的范围是 compile 的时候,传递性依赖范围与第一直接依赖的范围一致;

当第二直接依赖的范围是 test 的时候,依赖不会得以传递;

当第二直接依赖的范围是 provided 的时候,只传递第一直接依赖范围也为 provided 的依赖,且传递性依赖的范围同样为 provided;

当第二直接依赖的范围是 runtime 的时候,传递性依赖的范围与第一直接依赖的范围一致,但 compile 例外,此时传递性依赖的范围为 runtime。

转载于:https://www.cnblogs.com/microcat/p/7228698.html

Maven--传递性依赖和依赖范围相关推荐

  1. maven(5)坐标和依赖

    [0]README 1)本文部分文字转自 "maven实战",旨在 review  "maven(5)坐标和依赖" 的相关知识: [2]坐标详解  1)intr ...

  2. Maven学习九:依赖-dependency

    Maven依赖 1. 依赖的配置     根元素project下的dependencies可以包含一个或多个dependency元素,以声明一个或多个依赖.每个依赖可以包含的元素有: groupId. ...

  3. Maven的坐标与依赖

    (尊重劳动成果,转载请注明出处:https://blog.csdn.net/qq_25827845/article/details/83628045冷血之心的博客) 关注微信公众号(文强的技术小屋), ...

  4. Maven 依赖管理(依赖范围/排除/原则)

    Maven 一个核心的特性就是依赖管理.当我们处理一个或多模块的项目时,模块间的依赖关系就变得非常复杂,管理也变得很困难.针对此种情形,Maven 提供了一种高度控制的方法. 一.依赖配置 依赖是 M ...

  5. Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包...

    一,实例:新建了一个Maven项目,在eclipse中通过 build path –> configure path-.将依赖包添加到工程中后,eclipse不报错了.但是用Maven命令 mv ...

  6. maven项目中 把依赖的jar包一起打包

    2019独角兽企业重金招聘Python工程师标准>>> Maven1-HelloWorld简单入门 使用Maven Assembly plugin将依赖打包进jar 1.pom.xm ...

  7. maven添加oracle jdbc依赖

    maven添加oracle jdbc依赖 由于Oracle授权问题,Maven不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到 ...

  8. maven上解决循环依赖、又不想新加第三模块的方法

    maven上解决循环依赖.又不想新加第三模块的方法 参考文章: (1)maven上解决循环依赖.又不想新加第三模块的方法 (2)https://www.cnblogs.com/yuan951/p/89 ...

  9. 前沿速递:Maven中央仓库新增依赖漏洞提醒功能

    前沿技术早知道,弯道超车有希望 积累超车资本,从关注DD开始 ❝ 是的,如果以后在PPT中看到"Maven中有一些关键漏洞"时你应该理解为"这些在Maven中央仓库的依赖 ...

  10. maven 排除pom依赖_Maven依赖排除 禁止依赖传递 取消依赖的方法

    大家都知道Maven的优点是依赖管理,特别是前期使用ANT的开发者都有很多感触.最近要开发一个java工程,定的要使用maven,会使用hadoop和hbase的客户端,而引入一个hadoop-cli ...

最新文章

  1. linux删除非空目录
  2. 关闭微信朋友圈的第二天的感悟
  3. mysql事务未提交读_mysql事务之未提交读Read uncommitted(仅学习)
  4. eclipse下的tomcat内存设置大小
  5. [蓝桥杯][2019年第十届真题]等差数列
  6. [Swift]LeetCode281. 之字形迭代器 $ Zigzag Iterator
  7. 【HDU - 2665】Kth number(区间第K大,主席树,模板)
  8. 终止中台乱象 《2021年中国中台市场研究报告》隆重发布
  9. 人人开源 VUE项目报错./src/assets/scss/index.scssModule build failed: Error: ENOENT: no such file or direct
  10. C语言小知识---数据类型
  11. 信息安全问题频发:四成人讨厌大数据 六成人称微信谣言最多
  12. 计算机的照相机功能,单反相机各个功能按键的作用,让你彻底熟悉相机-fn键设置...
  13. python调用短信api接口实现验证码发送
  14. TD-SCDMA牵动3G牌照发放 重塑中国电信生态
  15. RDD优化--RDD共享变量(广播变量与累加器)
  16. opencv实战案例之照片背景替换
  17. 【PCL自学:Segmentation3】基于PCL的点云分割:区域增长分割
  18. 关于各大输入法词库格式之间的转换
  19. 为什么说诸葛亮不应该入围千古名相之列?
  20. java开发调用海康威视摄像头的web端页面开发心得

热门文章

  1. android中获取版本号,如何获取Android应用程序的构建/版本号?
  2. 【多线程】Synchronized及实现原理
  3. 深入理解Redis的持久化机制和原理
  4. CONTEST1001 题解
  5. CentOS7x64 防火墙配置
  6. JConsole监控远程Tomcat服务器
  7. 一个数据库存储架构的独白
  8. codeforces#254DIV2解题报告
  9. Nginx安装与配置文件解析
  10. 构建iOS稳定应用架构时方案选择的思考,主要涉及工程结构,数据流思想和代码规范...