Maven的传递性依赖

传递性依赖

考虑一个基于Spring Framework的项目,如果不使用maven,那么在项目中就需要手动下载相关依赖。由于Spring Framework又会依赖于其他开源类库,因此实际中往往会下载一些很大的包,包含Spring Framework的jar包,以及所有依赖他的其他jar包,这样做往往会引入很多不必要的依赖包。或者还可能会造成很多错误信息,这是一个非常麻烦的事情。

Maven的传递机制会好的解决了这个问题,有了传递机制,在使用Spring Framework的时候就不用去考虑它依赖了什么,也不用考虑担心引入多余的依赖。Maven会解析各个直接依赖的POM,讲那些必要的间接依赖,以及传递性依赖的形式引入当前项目中。

传递性依赖和依赖范围

假设A依赖于B,B依赖于C,我们说A对于B是第一直接依赖,B对于C是第二直接依赖,A对C是传递性依赖。第一直接依赖的范围和第二直接依赖的范围决定了传递依赖的范围。如下图所示,最左边一行表示第一直接依赖范围,最上面一行表示第二直接依赖范围。中间交叉的单元格则表示传递依赖的范围。

这里写图片描述

规律:当第二依赖的范围是compile的时候,传递依赖的范围与第一直接依赖的范围一致;当第二直接依赖的范围是test的时候,依赖不会得以传递;当第二直接以来的范围是provided的时候,只传递第一直接依赖范围也为provided的依赖,且传递性依赖的范围同样为provided;当第二直接依赖的范围为runtime的时候,传递性依赖的范围与第一直接依赖的范围一致,但compile例外,此时传递性依赖的范围为runtime。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值