Maven之依赖的传递

问题导入

1. 依赖传递

A依赖B,B依赖C,A是否依赖于C呢?–A依赖于C

在这里插入图片描述

依赖具有传递性

  • 路径优先:当依赖中出现相同的的资源时,层级越深,优先级越低,层级越浅,优先级越高

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

eg:A直接依赖于B(B是在1度)和C(C也在1度);B直接依赖junit4.12(junit4.12在2度),C直接依赖junit4.12.2(junit4.12.2在2度), 在A的直接依赖中,B在C的前面,所以A中junit的版本是4.12;

注意与特殊优先区别

  • 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的

eg:A项目直接依赖了两个junit,后配置的覆盖前面的

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
        </dependency>

在这里插入图片描述

2. 可选依赖

问题导入

A依赖B,B依赖C,如果B不想让A看见C,是否可以做到?

  • 可选依赖指对外隐藏当前所依赖的资源————不透明

在B中进行配置

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

将optional设置为true,C中的这个依赖,A中就看不见了

3. 排除依赖

问题导入

A依赖B,B依赖C,如果A不想将C依赖进来,是否可以做到?

  • 排除依赖指主动断开依赖的资源,被排除的资源无需指定版本————不需要
  • 排除依赖资源仅指定GA即可,无需指定V

在A中进行配置

<dependency>
    <groupId>com.itheima</groupId>
    <artifactId>maven_04_dao</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--排除依赖是隐藏当前资源对应的依赖关系-->
    <exclusions>
        <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
        </exclusion>
    </exclusions>
</dependency>

4 可选依赖和排除依赖的区别

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙会不会像10几年前安卓一样,红极一时

如今&#xff0c;鸿蒙与安卓彻底切割时间似乎越来越近&#xff0c;一批嗅觉灵敏的互联网厂商已经完成或开始启动开发鸿蒙原生App。随着头部App厂商启动鸿蒙&#xff08;HarmonyOS&#xff09;原生应用开发&#xff0c;鸿蒙开发人才变得紧缺。专家预测&#xff0c;鸿蒙开发的人才…

通过聚道云软件连接器实现金蝶软件与客如云软件的无缝对接

客户介绍 某知名冷饮连锁品牌是国内一家拥有数千家门店的知名品牌&#xff0c;作为一家专注于冷饮和甜品的企业&#xff0c;我们致力于提供高品质、健康美味的食品&#xff0c;为消费者带来冰凉的甜蜜与畅快的口感。 我们始终坚持选用优质原料&#xff0c;严格把控生产流程&a…

数据库基础知识1

关系模型的程序员不需熟悉数据库的存取路径 在3层模式结构中,___I___是数据库的核心和关键,___Ⅱ___通常是模式的子集,数据库模式的描述提供给用户,____Ⅲ__的描述存储在硬盘上。Ⅰ.模式Ⅱ. 外模式Ⅲ. 内模式 数据库中,数据的物理独立性是指用户的应用程序与存储在磁盘上数据库…

数据库——SQL注入攻击

【实验内容及要求】 一、内容&#xff1a;掌握SQL注入攻击的原理&#xff0c;掌握基本SQL注入攻击的方法&#xff0c;掌握防SQL注入攻击的基本措施。 二、要求&#xff1a; 1. DVWA环境配置 DVWA&#xff08;Damn Vulnerable Web Application&#xff09;是一个用来进行安全…

使用ffmpeg+flv.js + websokect播放rtsp格式视频流

对于rtsp的视频流网上有很多种的解决方案&#xff0c;但是大的趋势还是利用ffmpeg的工具进行rtsp的视频解析进行一个推流&#xff0c;我最终选择bilibili开源的flv.js&#xff0c;代码十分的简单全部都在底层封装好了。实现的方式也比较容易理解&#xff0c;ffmpeg进行rtsp的视…

springboot、spring-kafka、kafka-client的版本对应关系

在使用springboot集成kafka的时候需要注意springboot版本、引用的依赖spring-kafka版本和kafka中间件版本的对应关系&#xff0c;否则可能会因为版本不兼容导致出现错误。 1、含义说明&#xff08;摘自官网&#xff09; Spring Boot&#xff1a;是springboot的版本。Spring fo…

【MLOps】使用Ray缩放AI

Ray正在人工智能工程领域崭露头角&#xff0c;对扩展LLM和RL至关重要 Spark在数据工程中几乎是必不可少的。Ray正在人工智能工程领域崭露头角。 雷是伦敦大学学院Spark的继任者。Spark和Ray有很多相似之处&#xff0c;例如用于计算的统一引擎。但Spark主要专注于大规模数据分析…

SSMBUG汇总

20240103 通用&#xff0c;驼峰命名法&#xff0c;mybatis。 mybatis入门程序中&#xff0c; // 获取对象的顺序为&#xff1a;SqlSessionFactoryBuild-》SqlSessionFactory-》SqlSessionSqlSessionFactoryBuilder sqlSessionFactoryBuilder new SqlSessionFactoryBuilder();I…

数字孪生与大数据和分析技术的结合

数字孪生与大数据和分析技术的结合可以为系统提供更深入的见解、支持实时决策&#xff0c;并优化模型的性能。以下是数字孪生在大数据和分析技术中的一些应用&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流…

IPFoxy:2024第一季度跨境营销重要节日,亚马逊跨境人快收藏

参照亚马逊的销售日历&#xff0c;我们整理出了亚马逊2024年第一季度的跨境重点营销节日&#xff0c;快收藏起来&#xff0c;为2024年大卖做准备吧&#xff01; 一、一月 1、元旦&#xff08;1.1&#xff09; 覆盖站点&#xff1a;美国站/加拿大站/欧洲站/新加坡站/墨西哥站热…

【LeetCode每日一题】2397. 被列覆盖的最多行数

2024-1-4 文章目录 [2397. 被列覆盖的最多行数](https://leetcode.cn/problems/maximum-rows-covered-by-columns/)方法&#xff1a;二进制枚举 2397. 被列覆盖的最多行数 方法&#xff1a;二进制枚举 1.获取矩阵的行数和列数&#xff0c;并创建一个大小为m的一维数组rows来保…

leetcode:2784. 检查数组是否是好的(python3解法)

难度&#xff1a;简单 给你一个整数数组 nums &#xff0c;如果它是数组 base[n] 的一个排列&#xff0c;我们称它是个 好 数组。 base[n] [1, 2, ..., n - 1, n, n] &#xff08;换句话说&#xff0c;它是一个长度为 n 1 且包含 1 到 n - 1 恰好各一次&#xff0c;包含 n 两…

理解二叉树的遍历(算法村第七关白银挑战)

二叉树的前序遍历 144. 二叉树的前序遍历 - 力扣&#xff08;LeetCode&#xff09; 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,2,3]解 LeetCode以及面试中提供的方法可能…

关于“Python”的核心知识点整理大全60

目录 19.4 小结 第 20 章 设置应用程序的样式并对其 进行部署 20.1 设置项目“学习笔记”的样式 20.1.1 应用程序 django-bootstrap3 settings.py settings.py 20.1.2 使用 Bootstrap 来设置项目“学习笔记”的样式 20.1.3 修改 base.html 1. 定义HTML头部 base.html…

如何通过内网穿透实现无公网IP远程访问内网的Linux宝塔面板

文章目录 一、使用官网一键安装命令安装宝塔二、简单配置宝塔&#xff0c;内网穿透三、使用固定公网地址访问宝塔 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。…

免费文件格式转换器——Fconvertio!

项目链接&#xff1a;https://fostmar.online/fconvertio.html 特点&#xff1a; 完全免费支持文件格式多界面极为简单 支持格式转换&#xff1a; gifjpegjpgpngpdfdocdocxodtrtfxlsxlsxcsvodspptpptxodptxtziprarmp3wavmp4avihtmlsql

影响助听器使用寿命的因素

至少有九个因素会影响助听器的平均寿命&#xff1a; 用于制造助听器的材料清洁频率佩戴助听器的地方助听器的存放方式助听器样式一个人的身体生理学维护频率技术进步独特的听力需求 1.用于制作助听器的材料 虽然助听器的设计经久耐用&#xff0c;但由塑料、金属、硅、聚合物…

《学周刊》是什么级别的期刊?是正规期刊吗?能评职称吗?

《家长》以马列主义、思想、邓小平理论和“三个代表”重要思想为指导&#xff0c;全面贯彻党的教育方针和“双百方针”&#xff0c;理论联系实际&#xff0c;开展教育科学研究和学科基础理论研究&#xff0c;交流科技成果&#xff0c;促进学院教学、科研工作的发展&#xff0c;…

安卓平板电脑,5G通讯加持,帮你的通讯效率提提速

安卓平板电脑&#xff0c;作为一种集通讯、娱乐、工作于一体的便携设备&#xff0c;近年来随着5G通讯技术的发展&#xff0c;其在通讯效率方面迎来了新的提升。5G通讯加持&#xff0c;不仅为安卓平板电脑带来了更快速、更稳定的数据传输能力&#xff0c;也为用户的通讯效率提供…

云卷云舒:【实战篇】Redis迁移

1. 简介 Remote Dictionary Server(Redis)是一个由Salvatore Sanfilippo写的key-value存储系统&#xff0c;是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 2. 迁移原理 redis-sh…