maven依赖设置

news2024/11/25 23:26:40

之前说过了可以通过依赖的方式将一个大程序分为多个小的模块,模块之间可以利用依赖链接在一起。
但是如果有多个依赖的情况下会怎么样呢?
在这里插入图片描述
A依赖于B、C,而B、C又有各自的依赖,那么A是否依赖于B、C的依赖呢?
答案是是的,因为具有依赖传递的特性。

那么如果传递依赖中出现了包版本依赖冲突的问题,算那个包呢?
情况一:特殊优先:在一个pom.xml中添加两个不同版本的Junit依赖:后配置的覆盖先配置的。
情况二:路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高。

  • A通过B间接依赖到E1、通过C间接依赖到E2,A就会间接依赖到E1和E2,Maven会按照层级来选择,E1是2度,E2是3度,所以最终会选择E1。

情况三:声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的。

  • A通过B间接依赖到D1、通过C间接依赖到D2,D1和D2都是两度,这个时候就不能按照层级来选择,需要按照声明来,谁先声明用谁,也就是说B在C之前声明,这个时候使用的是D1,反之则为D2。

如果想更全面的查看Maven中各个坐标的依赖关系,可以点击Maven面板中的show Dependencies
在这里插入图片描述
在这里插入图片描述
如果出于某些原因,我不想使用传递依赖下的某个包,怎么办呢?

方法一:可选依赖

  • 可选依赖指对外隐藏当前所依赖的资源—不透明
<dependency>
	<groupId>com.itheima</groupId>
	<artifactId>maven_03_pojo</artifactId>
	<version>1.0-SNAPSHOT</version>
	<!--可选依赖是隐藏当前工程所依赖的资源,隐藏后对应资源将不具有依赖传递-->
	<optional>true</optional>
</dependency>

方法二:排除依赖

  • 排除依赖指主动断开依赖的资源,被排除的资源无需指定版本
<dependency>
	<groupId>com.itheima</groupId>
	<artifactId>maven_04_dao</artifactId>
	<version>1.0-SNAPSHOT</version>
	<!--排除依赖是隐藏当前资源对应的依赖关系-->
	<exclusions>
		<exclusion>
			<groupId>com.itheima</groupId>
			<artifactId>maven_03_pojo</artifactId>
		</exclusion>
	</exclusions>
</dependency>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/167951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenResty中Lua变量的使用

全局变量 在 OpenResty 里面&#xff0c;只有在 init_by_lua* 和 init_worker_by_lua* 阶段才能定义真正的全局变量。 这是因为其他阶段里面&#xff0c;OpenResty 会设置一个隔离的全局变量表&#xff0c;以免在处理过程污染了其他请求。 即使在上述两个可以定义全局变量的阶…

全息(CSDN_0009_20220919)

文章编号&#xff1a;CSDN_0009_20220919 目录 全息的广义概念 发展历程 全息摄影 全息投影 全息影像 全息应用 全息投影 全息的广义概念 反映物体在空间存在时的整个情况的全部信息。 特指一种技术&#xff0c;可以让从物体发射的衍射光能够被重现&#xff0c;其位置和…

uniapp获取微信openid - 微信提现 - 登录授权 - AndroidStudio离线打包微信登陆

效果图 主要步骤 (详细步骤有配图) 登录微信开放平台,获取AppID + AppSecrethttps://open.weixin.qq.com/

mysql:浅显易懂——存储引擎

mysql&#xff1a;浅显易懂——存储引擎 最近学到了存储引擎(尚硅谷的康老师视屏)。 首先存储引擎并不是什么高大上的东西&#xff0c;可以直接理解为&#xff0c;表类型 所以存储引擎是针对表的描述。 那么如何学习&#xff1f;——就学mysqll中不同的表类型。和不同类型的…

【初阶数据结构】——二叉树OJ练习

文章目录前言1. 单值二叉树思路分析思路1. 遍历对比思路2. 递归代码实现2. 判断两棵二叉树是否相同思路分析代码实现3. 另一棵树的子树思路分析代码实现4. 返回二叉树结点的前序遍历数组思路分析代码实现5. 对称二叉树思路分析代码展示前言 上一篇文章我们刚刚学完二叉树初阶的…

使用nginx的rtmp模块搭建RTMP和HLS流媒体服务器

使用nginx的rtmp模块搭建RTMP和HLS流媒体服务器 文章目录使用nginx的rtmp模块搭建RTMP和HLS流媒体服务器环境搭建参数配置验证结果前面文章中已经介绍了《使用nginx搭建rtmp流媒体服务器》和《使用nginx搭建HLS服务器》&#xff0c;其实nginx的RTMP模块本身就支持接收RTMP推流、…

【jQuery】实现文件上传和loading效果

一、 jQuery实现文件上传1. 定义UI结构<!-- 导入 jQuery --><script src"./lib/jquery.js"></script><!-- 文件选择框 --><input type"file" id"file1" /><!-- 上传文件按钮 --><button id"btnUplo…

我们是存算一体化

从最初的计算和存储分离,随着技术的发展,存算一体化越来越被大家重视,成为了下一个发展浪潮。其实对于海量数据场景来说,我们更认为数据应该是存算协同的关系。存算一体化才是最高效的技术之一,但是目前真正的存算一体,或者说革命性地突破冯•诺伊曼架构的存算一体还未实…

考虑电能交互的冷热电区域多微网系统双层多场景协同优化配置(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

力扣sql基础篇(十)

力扣sql基础篇(十) 1 矩形面积 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # 纵坐标相同或者横坐标的两个点是不可能成为矩形的 # 使用inner join连接两个表的时候 考虑需不需要去重,如何去重也是很重要的(会有重复的两条数据,只是顺序不一样) S…

振弦采集模块配置工具VMTool通用串口调试模块

振弦采集模块配置工具VMTool通用串口调试模块 VMTool 扩展功能 双击主界面右侧扩展工具条可实现扩展功能区的显示与隐藏切换。 扩展功能包括串口调试、MODBUS、实时曲线及数据存储等几个功能模块。 扩展功能区显示效果如下。 串口调试模块直接使用当前已连接的 COM 端口&#…

redis集群启动

文章目录一、添加配置文件二、启动服务和集群三、集群操作四、故障恢复一、添加配置文件 一共8个文件 创建6个redisXXX.conf文件 6个文件的内容和下面的一样&#xff0c;但是要修改端口数值。例如&#xff1a;把下面的6379全部改为6380# 路径为redis.conf的绝对路径 include…

易基因2022年度DNA甲基化研究高分项目文章精选

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。回顾刚刚过去的2022年&#xff0c;易基因参与的DNA甲基化研究在细胞分化与发育、疾病发生发展及标志物筛选、环境因素暴露与响应等应用场景成果层出不穷&#xff0c;小编选取其中三个研究方…

挖掘HTTP请求走私漏洞

利用Burp插件挖掘HTTP请求走私 HTTP请求走私通常遗留在漏洞发现赏金项目中。但通过正确的插件&#xff0c;您 可以在下一个赏金项目中自动化地完成挖掘HTTP请求走私漏洞的过程。 了解HTTP请求走私 现代网站经常部署多个代理服务器用于转发用户请求到托管Web应用程序的真实服务…

linux free命令

free是指查看当前系统内存的使用情况&#xff0c;它显示系统中剩余及已用的物理内存和交换内存&#xff0c;以及共享内存和被核心使用的缓冲区。 选项&#xff1a; -b&#xff1a;以字节为单位显示。 -k&#xff1a;以K字节为单位显示。 -m&#xff1a;以兆字节为单位显示。 参…

JavaScript 库之 dyCalendarJS(日历)

JS 库之 dyCalendarJS&#xff08;日历&#xff09;&#xff09;参考获取使用导入CSSJS使用HTMLJavaScript代码总汇样式容器圆边颜色渐变阴影日历dycalendar.draw()举个栗子默认样式daymonth其他参考 项目描述DYClassRoom前往GitHub前往 获取 GitHub dyCalendarJSFrom jsDeli…

拼一个自己的操作系统(SnailOS 0.03的实现)

像文本模式一样显示字符串在拼操作系统的征程中&#xff0c;仅仅是画上一些简单的图形&#xff0c;显然是不够的。原因就在于&#xff0c;如果开发的过程中&#xff0c;出现了“臭虫”&#xff0c;而系统并不能显示任何有价值的信息&#xff0c;那我们岂不是两眼一抹黑&#xf…

【电子学会】2022年12月图形化四级 -- 简易抗疫物资管理系统

简易抗疫物资管理系统 1. 准备工作 (1)角色:从角色库中添加4个按钮,添加文字“增加”、“删除”、“修改”、“查询”,修改角色名字为“增加按钮”、“删除按钮”、“修改按钮”、“查询按钮”; (2)列表:新建列表“抗疫物资清单”。 2. 功能实现 (1)点击“增加按…

第三章 Linux中的shell与权限

第三章 Linux中的shell与权限一、linux的内核&#xff08;kernel&#xff09;与外壳&#xff08;shell&#xff09;1、内核与外壳的关系2、外壳的作用二、权限1、用户中的权限&#xff08;1&#xff09;超级用户&#xff1a;root&#xff08;2&#xff09;普通用户a.普通用户的…

超实用的微信公众号内容运营方案分享

公众号运营的本质就是图文生产&#xff0c;内容绝对是涨粉引流的关键。没有产出好的内容&#xff0c;这个公众号是绝对走不长远的。 公众号内容运营大致上可以分为两个大方向&#xff0c;一个是搭建完整的公众号内容体系&#xff0c;一个是创作具体的公众号推文内容&#xff0…