maven实战(二)maven的依赖

本文介绍了Maven项目的依赖配置及解析规则,包括默认的compile依赖范围、依赖传递性以及依赖调节的原则,即路径最近者优先和第一声明者优先。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

maven的依赖配置可以通过<scope>标签配置,默认是compile类型。

maven项目的依赖是有传递的,比如我们项目中依赖了spring-framework.而spring-framework中还依赖了commons-logging jar包,由于没有声明范围,其默认范围都是compile.

maven会解析各个直接依赖的项目,将那些必要的间接依赖,以传递性依赖的形式,引入到当前项目中。

依赖调节

但有些特例,比如:项目A有这样的依赖关系:A->B->C->X和A->D->X,X是A的传递性依赖,但两条路径上有两个X但那条会被Maven解析使用呢?两个版本都解析显然不对,因为会造成重复依赖。maven依赖调节的第一原则是:路径最近者优先。因此选择最短的A->D->X。

第二种情况:

依赖关系:A->B-Y,A->C->Y,这两个路径是一样长的,maven定义了依赖调节的第二原则:第一声明者优先。在依赖路径相等的情况下,pom文件中的声明顺序决定了谁会被解析使用,顺序最靠前的依赖优胜。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值