maven实战(二)maven的依赖

xiaoxiao2021-02-28  64

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文件中的声明顺序决定了谁会被解析使用,顺序最靠前的依赖优胜。

转载请注明原文地址: https://www.6miu.com/read-46592.html

最新回复(0)