一、传递依赖与排除依赖
传递依赖
如果项目引用了一个jar包,而该jar包又引用了其他jar包。那么,在默认情况下,项目编译时,Maven会把直接引用和间接引用的jar包都下载到本地
排除依赖
如果我们只想下载直接引用的jar包,那么需要在pom.xml中做如下配置
使用exclusions标签,排除相应jar包依赖
二、依赖冲突
说明:若项目中多个jar同时引用了相同的jar时,会产生依赖冲突,但Maven采用了两种避免冲突的策略,因此在Maven中时不存在依赖冲突的
短路优先
本项目->A.jar->B.jar->X.jar
本项目->C.jar->X.jar
此时X包就是从C包下引入的,因为C的路径短
声明优先
若引用路径长度相同时,在pom.xml中谁先被声明,就使用谁
三、多模块聚合
父模块pom文件的配置:packaging类型必须是pom
聚合子模块:使用modules标签
父模块统一管理依赖包:使用dependencyManagement标签
子模块需要在pom中声明父模块:使用parent标签