本专栏主要是记录学习完JavaSE后学习JavaWeb部分的一些知识点总结以及遇到的一些问题等,如果刚开始学习Java的小伙伴可以点击下方连接查看专栏
本专栏地址:🔥JavaWeb
Java入门篇: 🔥Java基础学习篇
Java进阶学习篇(持续更新中):🔑Java进阶学习篇

 
文章目录
- 一、前言
- 二、依赖配置
- 1.概述
- 2.格式
 
- 三、依赖传递
- 1.概述
- 2.依赖冲突
- 3.可选依赖
- 4.排除依赖
 
- 四、依赖范围
- 1.作用范围
- 2.传递性
 
- 五、结语
一、前言
Maven基础中还有依赖没有讲述,这篇文章主要讲述依赖管理
二、依赖配置
1.概述
依赖指当前项目运行所需要的jar,一个项目可以设置多个依赖
2.格式
<!--设置当前项目所依赖的所有jar-->
<dependencies>
	<!--设置具体依赖-->
	<dependency>
		<!--依赖所属群组id-->
		<groupId>junit</groupId>
		<!--依赖所属项目id-->
		<artifactId>junit</artifactId>
		<!-- 依赖版本号-->
		<version>4.12</version>
	</dependency>
</dependencies>
三、依赖传递
1.概述
间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
直接依赖:在当前项目中通过依赖配置建立的依赖关系
 
2.依赖冲突
-  路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高 
-  声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高 
-  声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的 
3.可选依赖
对外隐藏当前所依赖的资源
<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>4.12</version>
	<!--设置可选依赖-->
	<optional>true</optional>
</dependency>
4.排除依赖
主动断开依赖的资源,被排除的资源不用指定版本
<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>4.12</version>
	<exclusions>
		<exclusion>
			<!--设置排除依赖-->
			<groupId>org.hamcrest</groupId>
			<artifactId>hamcrest-core</artifactId>
		</exclusion>
	</exclusions>
</dependency>
四、依赖范围
1.作用范围
| scope | 主代码 | 测试代码 | 打包 | 范例 | 
|---|---|---|---|---|
| compile(默认) | ✔ | ✔ | ✔ | log4j | 
| test | ✔ | junit | ||
| provided | ✔ | ✔ | servlet-api | |
| runtime | ✔ | jdbc | 
2.传递性
行是直接依赖,列是间接依赖
| compile | test | provided | runtime | |
|---|---|---|---|---|
| compile | compile | test | provided | runtime | 
| test | ||||
| provided | ||||
| runtime | runtime | test | provided | runtime | 
五、结语
接下来将总结生命周期与插件相关知识点



















![[NSSRound#7 Team]Web学习](https://img-blog.csdnimg.cn/2f598c448fff486b805bede0e0c9a325.png)