文章目录

  • 一、前言
  • 二、依赖配置
  • 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.概述

间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源

直接依赖:在当前项目中通过依赖配置建立的依赖关系

java 中的依赖 java 依赖包管理_java

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

五、结语

接下来将总结生命周期与插件相关知识点