1、依赖管理
1.1、依赖配置
依赖:当前项目运行所需要的 jar 包。
-
一个项目可以导入多个依赖,项目本身可作为依赖被导入。
-
配置方式:dependencies - dependency - gav。
<!-- 项目依赖 --> <dependencies> <!--具体依赖 --> <dependency> <!-- GAV 坐标 --> <groupId></groupId>> <artifactId></artifactId> <version></version> </dependency> </dependencies>
1.2、依赖传递(❗)
1.2.1、传递性
依赖具有传递性。
相对于当前项目,分为直接传递和间接传递。
-
直接传递:通过依赖配置建立的依赖关系(A 导入 B,则 AB 是直接传递)
-
间接传递:通过依赖配置间接建立的依赖关系(A 导入 B、B 导入 C,则 AC 是间接传递)
1.2.2、冲突问题
依赖中出现相同资源时,存在冲突问题。
冲突解决策略:按以下顺序处理
-
路径优先:资源相同,优先使用层级越浅的。
-
声明优先:层级相同,优先使用先声明的。
特殊情况:一个项目中直接导入了相同资源的不同版本,使用后声明的。
示例:项目中同时导入 JUnit 的两个版本,优先使用 4.12
<dependencies>
<!-- 先声明 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.27</version>
</dependency>
<!-- 后声明
标签:MVN3,插件,生命周期,依赖,项目,传递,导入
From: https://www.cnblogs.com/secretmrj/p/16650876.html