Maven基础学习——依赖管理

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

在这里插入图片描述

一、前言

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
testjunit
providedservlet-api
runtimejdbc

2.传递性

行是直接依赖,列是间接依赖

compiletestprovidedruntime
compilecompiletestprovidedruntime
test
provided
runtimeruntimetestprovidedruntime

五、结语

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

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alita11101_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值