2.1 直接依赖与间接依赖

 

 

 

2.2 依赖传递

2.2.1 Jar包分类

(1)编译、运行、打包时均不需要的Jar包

         测试用的Jar包属于该类型,例如junit、spring-test

(2)编译、运行时需要,但打包时不需要的Jar包

         servlet-api,jsp-api属于该类型

(3)编译时不需要,但运行、打包时需要的Jar包

         mysql驱动属于该类型

         static {

                   Class.forName(“com.mysql.jdbc.Driver”);

         }

(4)编译、运行、打包时均需要的Jar包

         大多数jar包都属于该类型

2.2.2 依赖传递范围设定

(1)test

         仅适用于第一类Jar包。其不会向下传递。

(2)provided

         仅适用于第二类Jar包。其不会向下传递。

(3)runtime

         仅适用于第三类Jar包。其会向下传递。

(4)compile

         默认值。适用于第四类Jar包。其会向下传递。

(5)system

<systemPath>${basedir}/lib/xxx.jar</systemPath>

(6)import

2.3 可选传递与排除依赖

可选传递

<optional/>值为true,表示当前依赖是可选的,即可要可不要。其不会向下传递。

第2章 项目依赖管理

<optional/>值为false,默认值,表示当前依赖是不可选的,即是必须要的。其会向下传递。

第2章 项目依赖管理

排除依赖

第2章 项目依赖管理

2.4 依赖冲突

2.4.1 直接依赖冲突

         在同一个工程中出现了同一个依赖的不同版本,系统会自动选择最后导入的那个版本。

第2章 项目依赖管理

2.4.2 间接依赖冲突

         间接依赖冲突在工程中会出现问题,所以需要手工删除发生冲突的依赖。

第2章 项目依赖管理

2.5 统一管理版本号

第2章 项目依赖管理

2.6 依赖的继承

2.6.1直接继承

第2章 项目依赖管理

第2章 项目依赖管理

2.6.2可选继承

第2章 项目依赖管理

第2章 项目依赖管理

第2章 项目依赖管理

第2章 项目依赖管理

第2章 项目依赖管理

2.7 聚合

第2章 项目依赖管理

相关文章: