首页 > 编程语言 >Java的jar包依赖版本冲突解决

Java的jar包依赖版本冲突解决

时间:2023-04-08 16:35:06浏览次数:51  
标签:插件 依赖 Java jar Maven 冲突 版本

参考:

https://blog.csdn.net/weixin_38898423/article/details/128178055

https://blog.csdn.net/Yal_insist/article/details/127669985

一、依赖冲突

不同的第三方jar包可能同时对某一个jar包的不同版本含有依赖,但是Maven解析pom.xml文件时,同一个jar包只会保留一个

Maven默认处理策略:
1.最短路径优先
Maven 面对 D1 和 D2 时,会默认选择最短路径的那个 jar 包,
即 D2。E->F->D2 比 A->B->C->D1 路径短1。

2.最先声明优先
如果路径一样的话,如: A->B->C1, E->F->C2 ,两个依赖路径长度都是 2,那么就选择最先声明。


二、使用Maven Helper插件查找、删除冲突版本

不使用插件的话,想要找到依赖关系就要去看依赖关系图,但是很复杂,而且不能直接删除其中的冲突版本,只能知道哪些包存在版本冲突

image

ctrl+滚轮、鼠标可以放大、拖动图,其中红色虚线对应的部分就是这个包依赖于另一个包的冲突版本

image


1.安装Maven Helper插件

文件-设置-插件-Mark

image


2.点击pom.xml文件

发现底部出现了文本和analyzer的选项

image


3.选择analyzer分析器,删除对应冲突包或修改包版本(conflict即选择冲突包)

image

标签:插件,依赖,Java,jar,Maven,冲突,版本
From: https://www.cnblogs.com/Studywith/p/17298729.html

相关文章

  • 【Java】数组
    数组是编程语言中常见的数据结构,用来存储一组相同数据类型的数据,可以通过整型索引访问数组中的每一个值。需要注意,同一个数组中存储的所有元素的数据类型必须相同。根据数组存放元素的组织结构,可将数组分为一维数组、二维数组以及多维(三维及以上)。创建数组:data_type[]varName;......
  • JavaScript 数组笔记
    添加和删除数组项添加push()push()方法:向数组的末尾添加一个或多个元素,并返回修改后的数组长度。语法:arr.push(element1[,...[,elementN]])参数:element1,...,elementN:要添加到数组末尾的元素。示例:constfruits=['apple','banana','orange'];constnewLength......
  • Java笔记(六):设计原则
    SOLID原则是面向对象设计和编程中的一组基本原则,其中SOLID分别是以下五个原则的首字母缩写:单一职责原则(SingleResponsibilityPrinciple,SRP)。一个类或者模块只应该有一个单一的责任。这个原则告诉我们,一个类应该只负责一项功能,不要试图把太多的职责塞到一个类里面。开闭......
  • java中的引用
    引用分类强引用强引用是我们常见的普通对象引用,只有还有强引用指向一个对象,就表明这个对象还“存活”,垃圾收集器不会碰这个对象当一个对象被强引用对象引用时,它就处于可达状态,它是不能被垃圾回收的,即使出现了OOM也不会对该对象回收软引用软引用是相对于强引用......
  • .NET 6版本中间件的使用
    .NET6版本中间件的使用中间件是一种处理HTTP请求和响应的可重用组件,通常用于添加处理逻辑或修改请求和响应。本文将演示如何创建.NET6版本的中间件。创建中间件让我们从创建一个简单的中间件类开始。我们将打印请求的URL,然后调用下一个中间件:publicclassMyMiddleware{......
  • JAVA实现单链表修改和删除数据节点
    JAVA实现单链表修改和删除数据节点一、修改单链表中的一个节点①实现思路因为带头节点的链表中头节点的next域不能发生改变(始终指向单链表的头节点),否则将找不到该链表。所以我们需要先找一个辅助节点temp来进行节点代理操作。通过遍历链表,使辅助节点temp后移,找到要修改的节点......
  • Java-SPI机制详解
    Java之SPI机制详解1:SPI机制简介SPI全称是ServiceProviderInterface,是一种JDK内置的动态加载实现扩展点的机制,通过SPI技术我们可以动态获取接口的实现类,不用自己来创建。这个不是什么特别的技术,只是一种设计理念。2:SPI原理JavaSPI实际上是基于接口的编程+策略模......
  • JavaScript 有效的字符串方法
    目录获得字符串的长度用处在字符串中查找子字符串找到字符串的位置判断是否包含特定子字符串截取子字符串的方法转换大小写替换字符串的某部分本文内容部分截取自该网站,不同部分则为本人笔记。获得字符串的长度letbrowserType='mozilla';browserType.length;用处检......
  • 剑指offer66(Java)-构建乘积数组(中等)
    题目:给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中 B[i]的值是数组A中除了下标i以外的元素的积,即 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。 示例:输入:[1,2,3,4,5]输出:[120,60,40,30,24] 提示:所有元素乘积之和不会......
  • 【Java 并发】【九】【AQS】【八】ReentrantReadWriteLock之ReadLock读锁原理
    1 前言上节我们看了下ReentrantReadWriteLock读写锁的写锁的申请和释放过程,这节我们就来看下读锁的。2 线程读锁记录回顾一下之前的例子,在读写并发操作的时候,读取数据的时候加读锁:publicclassReentrantReadWriteLockTest{//声明一个读写锁privatestaticR......