Maven学习:依赖管理

依赖是什么?

依赖是maven项目引用的资源jar包,依赖范围就是这些资源架包在maven项目中的作用范围,反过来说,maven项目通过依赖范围来控制何时引用资源jar包。”

关于依赖的问题

我们可以在web.xml中配置依赖,即<dependency>里面,基本格式如图2所示(optional基本配置可不要)

我们告诉xml文件,我们需要的jar包,需要的版本,maven就去仓库中找,找到之后会为我们自动加载(前面博文中有细说maven仓库)

而由于每个项目每个servlet需要的依赖不同,并且servlet与servlet之间存在着依赖传递,则当依赖的jar包有与依赖传递中的jar包有版本冲突时,关于maven到底使用哪一个jar包有如图一所示的处理优先方法。

图1

路径优先即指,依赖的依赖的依赖逐次递减优先级,自己的依赖优先于传递得到的依赖。

另外,在xml文件中后配置的会覆盖前面配置的内容。

 

图2

现在项目中有两个servlet,01与02;且01中的依赖有a,02中现存的依赖是b

01中配置了02,此时02就依赖传递了,01就有了a,b。

若不想在01中看见02中依赖的b,则可以在02的b依赖中添加<optional></optional>标签,且把属性改为true,如图2所示。

 

图3

同理,当01自己主动不想要02中传递依赖的b时,可以参考图3所示内容,排除依赖。

图4

在配置依赖时,还可以添加scope标签,表示依赖的作用范围,参数有四个,分别是图4中的compile,test,provided,runtime。compile是默认的,在不添加scope标签时默认取值为compile。

每个标签表示作用范围也如图4所示。

图5 

当scope标签遇到依赖传递依赖问题时,若同一个jar包,01中的scope取的是compile,02(间接依赖)取的是runtime,依据图5可知,最后scope取的是runtime范围。

当然,由于在早期的web工程中并不支持@WebServlet注解配置,甚至不支持El表达式(在web 3.0版本之后才支持)在web3.0版本之后的版本也支持注解配置,注解配置就能有效减少jar包配置的臃肿程度。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值