【Java】maven传递依赖冲突解决

传递依赖的概念:

传递依赖::

A.jar 依赖 B.jar, B.jar 依赖 C.jar, 这个时候我们就说B是A的直接依赖, C是A传递依赖;

传递依赖可能会产生冲突: 联系着上面, 新导入一个jar包D.jar, D依赖C.jar, 但是B依赖的1.1版本, 而D依赖的是1.2版本, 这时候C这个jar包的两个版本, 如果同时被Maven导入工程, 冲突就出现了!

针对这种冲突, Maven有自己的处理原则

处理原则:

①第一声明者优先原则

那个先声明, 那就用那个的传递依赖

②路径优先原则

直接依赖的优先级别要高于传递依赖

针对冲突, 靠代码来处理:

①排除依赖

注意: 不需要的排除掉, 不是排除掉所用的包

②版本锁定(这个是推荐使用的)

scope的依赖传递出去的范围:

A–>B–>C。当前项目为A,A依赖于B,B依赖于C。

知道B在A项目中的scope,那么怎么知道C在A中的scope呢?答案是: 

当C是test或者provided时,C直接被丢弃,A不依赖C; 

否则A依赖C,C的scope继承于B的scope。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解指针2:数组名理解、一维数组传参本质、二级指针、指针数组和数组指针、函数中指针变量

目录 1、数组名理解 2、一维数组传参本质 3、二级指针 4、指针数组和数组指针 5、函数指针变量 1、数组名理解 首先来看一段代码: int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };printf("%d\n", sizeof(arr));return 0; } 输出的结果是&…

【Linux进阶之路】地址篇

文章目录 一、ipv4地址1. 基本概念2. 分类3.CIDR4.特殊的ip地址 二、IP协议1. 协议字段2.分片与重组3.路由 三、NAT技术1.公有和私有2.NAT3.NAPT 四、ARP协议1.MAC地址2.ARP 五、DHCP协议六、DNS协议尾序 一、ipv4地址 1. 基本概念 概念:IP地址,英文全…

2024-04-07 作业

作业要求: 1> 思维导图 2> 自由发挥应用场景实现一个登录窗口界面。 【可以是QQ登录界面、也可以是自己发挥的登录界面】 要求:尽量每行代码都有注释 作业1: 作业2: 运行代码: #include "myqwidget.h&quo…

前端三剑客 —— JavaScript (第二节)

目录 内容回顾 数据类型 基本数据类型: 引用数据类型: 常见运算 算术运算符 比较运算符 逻辑运算符 赋值运算符 自增/减运算符 三目运算符 位运算符 内容回顾 1.概述 2.基本数据 1.使用方式(行内、页面、外部) 2.对话框…

不要再使用 @Builder 注解了!有深坑呀!

曾经,我在《千万不要再随便使用 lombok 的 Builder 了!》 一文中提到 Builder 注解的其中一个大坑会导致默认值失效! 最近阅读了 《Oh !! Stop using Builder》 发现 Builder 的问题还不止一个,Builder 会让人误以为是遵循构建器…

Linux——计算机进程基础知识

计算机基础知识 1.计算机组成五大部件: (1) 运算器 :也叫算数逻辑单元,完成对数据的各种常规运算,如加减乘除,也包括逻辑运算,移位,比较等。 (2) 控制器 : 它是整个计算机系统的控制中心&…

基于LNMP环境上线QQ农场

目录 一.介绍 二. 环境准备 三.安装Mysql数据库 四.安装PHP 五.安装Nginx 六.测试Nginx服务于PHP服务是否能关联 七.项目上线 QQ农场源码:做本项目默认操作者有一定的基础知识与理解能力 链接:https://pan.baidu.com/s/1HF8GZ-yvNh7RbJ61nXOW-g?…

Postman 脚本的奥秘:JavaScript 的内置对象和方法

postman 的前后置脚本中是完全支持 JavaScript 编写代码,JavaScript 有很多内置的对象和方法,可以帮助我们完成各种任务,比如生成随机数和测试响应数据 生成随机数 使用Math.random()方法来生成一个 0 到 1 之间的随机小数,比如…

Python应用|获取矢量数据的多边形个数

import geopandas as gpd #首先导入geopandas包# 读取Shapefile文件 shp_file "E:\python\china" gdf gpd.read_file(shp_file)# 获取多边形个数 num_polygons len(gdf)print("Number of polygons:", num_polygons) 图1|输出结果

C语言从入门到实战————编译和链接

目录 前言 1. 翻译环境和运行环境 2. 翻译环境 2.1 预处理(预编译) 2.2 编译 2.2.1 词法分析: 2.2.2 语法分析 2.2.3 语义分析 2.3 汇编 2.4 链接 3. 运行环境 前言 编译和链接是将C语言源代码转换成可执行文件的必经过程&a…

数据产品+AI产品 通关上岸,创建能带来商业价值的AI产品,学习AI产品开发

数据产品 AI产品 通关上岸,创建能带来商业价值的AI产品,学习AI产品开发流程 数据产品+AI产品 通关上岸,创建能带来商业价值的AI产品,学习AI产品开发 - 百创网-源码交易平台_网站源码_商城源码_小程序源码 人工智能快速渗入到各个行业,AI产品经理缺口高达6.8万,成为稀缺…

Java-Tomcat

一、web补充技术 ①:B/S架构 主流的方式,只要有浏览器即可。编程方式直接基于socket即可 ②:javascript 简称js,早期只是实现在客户端的浏览器的动态效果,但服务端不会解释运行,所以本质上是静态资源。 …