maven依赖范围

[b]1.test[/b] 测试的时候才会依赖,编译和打包不依赖,如junit不被打包
[b]2.compile[/b] 只有编译和打包时才会依赖
[b]3.provided [/b]编译和测试的时候依赖,打包不依赖,如:tomcat的一些公用jar包
[b]4.runtime [/b]运行时依赖,编译不依赖
[b]5.默认compile[/b]

依赖范围compile是支持传递的,test不支持传递
[b]1.传递[/b]的意思是项目A,引用了项目B,那么项目B中依赖的jar包在项目A中会被依赖
[b]2.项目A,[/b]引用了项目B,项目A也引用了项目C,现在是项目B中依赖XX1.1.jar,项目C中依赖了XX1.2.jar包,那么项目A最后依赖jar包是哪个?
这里面有一个级别的问题,级别就是jar包1依赖jar包2,jar包2依赖jar包3,那么如果项目中引入了jar包1,且使用了jar3,那么这个jar包3对于这个项目来说就是间接依赖,依赖级别是2,项目中使用jar包1,这个级别是0
回到最初问题,A项目引用了B和C,那么XX.jar包对A来说依赖级别是2,这时候A中的XX.jar包就是先引用了那个项目,jar就是哪个。
3.排查一些依赖
在<dependency>标签内添加<exclusions>标签就可以排查一些jar
[b]4.总结,[/b]如果A项目中也引用了XX.jar包,最后依赖的就是A中加入的,因为A中的级别是0。级别相同取版本最近的,级别不相等取级别小的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值