一、传递依赖与排除依赖

传递依赖
如果项目引用了一个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标签
图片说明