【Maven实战】——Jar包冲突解决方案

基础知识回顾

你是否在运行程序的时候经常会遇到 类似NoSuchMethodError,ClassNotFoundException这样的错误?而明明引入了这个依赖,还是找不到,我引入的是2.0.0版本的,为什么使用的确是另一个版本呢?其实,如果我们理解了maven的依赖原理,这些问题就能够轻松的解决啦!

maven依赖范围与传递性依赖

依赖范围

maven中有五种依赖范围,分别是:

  • compile 编译依赖范围(默认)
  • test 测试依赖范围,例如:JUnit
  • provide 已提供的依赖范围,对于编译和测试有效,但运行无效,例如servlet-api,编译和测试项目的时候需要此依赖,但运行时,容器已经提供,无需此依赖。
  • runtime 运行时依赖范围。对于测试和运行时需要,但编译时不需要。例如:JDBC驱动,项目编译时,使用的是JDK提供的JDBC接口,在执行测试和运行代码时需要实现JDBC接口的驱动。
  • system 系统依赖范围。使用时,必须通过systemPath元素显示的指定依赖文件路径。而不通过maven仓库所解析。

传递性依赖和依赖范围

传递性依赖和依赖范围

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幸运的梦之星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值