记录一次maven依赖冲突的解决
现象
项目依赖selenium-java的4.32版本,但是未发现org.openqa.selenium.devtools.DevTools
类。如下所示:
问题排查
定位问题
第一反应肯定是依赖冲突了,第一步先打开idea的maven工具看一下依赖树,结果如下:
从图中可以看到4.32依赖了很多3.14.0的依赖,并且没有任何omitted for duplicate
类似的提示, 怀疑selenium-java是不是本身走的就是部分升级的路子,点进selenium-java查看其POM文件发现其依赖如下:
显然selenium-java的4.32版本全部依赖都是显示的声名的4.32版本,这里基本可以确认依赖存在冲突,可以确定存在依赖冲突。但是我们通过Idea依赖树看,没有omitted for duplicate
提示,这就有点坑了。
冲突定位
既然有了冲突剩下的就是定位冲突,先引入依赖分析插件,如下所示(不引入分析不出来任何问题):
执行命令mvn dependency:resolve -Dincludes=org.seleniumhq.selenium
查看依赖树如下:
可以看到有很多omitted for duplicate
说明依赖确实存在问题,但是只有selenium-java这一个依赖树。看起来又不像有冲突的样子,但是却有version managed这样的提示,猜测冲突来源于maven依赖管理dependencyManagement
声名。执行命令mvn help:effective-pom
查看最终项目所有依赖,如下所示:
可以看到在dependencyManagement
声名的selenium全是3.14。然后定位发现Sspring-boot-starter-parent的2.1.7版本就有selenium的版本管理。所以Springboot 确实做了很多依赖管理,连selenium都有,恐怖如斯,学到了。至此问题算是定位到了。
问题解决
既然知道了问题所在,直接升级springboot或者显示的指定selenium-java依赖的版本即可,如下所示:
<!-- selenium 组件 -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.32.0</version>
</dependency>
<!--核心模块-->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>4.32.0</version>
</dependency>
<!-- google 依赖 -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>4.32.0</version>
</dependency>
<!-- cdp 接口依赖 -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-devtools-v136</artifactId>
<version>4.32.0</version>
</dependency>
<!-- cdp相关 -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
<version>4.32.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
<version>4.32.0</version>
</dependency>
记录一次maven依赖冲突的解决的更多相关文章
- maven依赖冲突以及解决方法
什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类包版本冲突 依赖冲突的原因 依赖冲突很经常是类包之间的间接依赖引起的.每个显式声明的类包都会依赖于一些其它的隐式类包, ...
- 解决maven依赖冲突问题
解决maven依赖冲突问题 1.idea 安装maven helper插件 2.打开pom.xml文件 底部多出一个Dependency Analyzer选项 点开这个选项 找到冲突,点击右键,选择E ...
- 【核心】project(idea文件)、module(iml文件)到SSM集成、热部署、Tomcat启动、MAVEN依赖冲突
http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/project-composition-introduce.html 在 Inte ...
- 说说maven依赖冲突,依赖调解,依赖传递和依赖范围
说maven依赖冲突之前需要先说说maven的 依赖传递. 依赖传递 当前项目引入了一个依赖,该依赖的依赖也会被引入项目.更加准确的说法是,maven会解析直接依赖的POM,将那些必要的间接依赖,以传 ...
- IDEA 解决 Maven 依赖冲突的高能神器,这一篇够不够?
1.何为依赖冲突 Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的.Maven的依赖机制会导致Jar包的冲突.举个例子,现在你的项目中,使用了两个Jar包,分别是A和B.现在A需要依 ...
- 解决maven依赖冲突,这篇就够了!
一.前言 什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成了包版本冲突. 依赖冲突的原因 我们在maven项目的pom中 一般会引用许许多多的dependency.例如 ...
- Maven依赖冲突解决总结
转载请注明出处: 1.Jar包冲突的通常表现 Jar包冲突往往是很诡异的事情,也很难排查,但也会有一些共性的表现. 抛出java.lang.ClassNotFoundException:典型异常,主要 ...
- 如何快速的解决Maven依赖冲突
为什么会出现依赖冲突 首先要说明Maven的依赖管理,具体的可以参考这边 Maven学习——依赖管理 这篇文章,maven在依赖冲管理中有一下几个原则. 依赖是使用Maven坐标来定位的,而Maven ...
- Maven - 依赖冲突
依赖冲突有两个规则: 短路优先范例:A -> B -> C -> X-2.0.0A -> D -> X-1.0.0那么A -> X-1.0.0这个版本 先声明优先范 ...
- maven 依赖冲突的问题
如果原始系统的jarA依赖jarB1.0 而新引入的jarC依赖jarB2.0 导致系统启动报错,提示冲突,这时为了保证原始系统的稳定性, 在pom.xml文件中引入jarC时,需要exclude掉j ...
随机推荐
- KaFka 安装与基本使用
学了有一段时间的大数据了,学习新的组件,大部分安装可以分为三步:上传解压,配置文件,启动. 分享一下我的kafka安装包: 链接:https://pan.baidu.com/s/1fbydwZwcYy ...
- Win10打开IE自动跳转至Edge解决办法
WIN + R输入inetcpl.cpl弹出Internet属性对话窗口 点击上面菜单中的[高级]选项 滑动右侧滚动条,找到[浏览]项下面的[启用第三方浏览器拓展*]并取消勾选 双击IE浏览器图标测试 ...
- 【独立开发作品】SlideBrowser 一个轻量的滑动浏览器,给你不一样的交互体验
产品介绍 SlideBrowser是一个滑动浏览器,当你鼠标移动到屏幕边缘,自动出现,当失焦时自动隐藏. 使用场景 在应用全屏模式下查询资料.问 GPT 等 记录一些待办事项或者笔记 查看股市.币市信 ...
- 依赖注入(DI)与控制反转(IoC)
.wj_nav { display: inline-block; width: 100%; margin-bottom: 0.375rem } .wj_nav span { display: inli ...
- 在GNU Hurd中感受Mach微内核的进程通信(IPC)
什么是GNU Hurd 具体的时间线已经在官方维基页面得到详细描述[0],笔者在此就简单叙述一下.在1983年Richard Stallman开启了GNU项目,目的是创建一个自由的操作系统[1].在接 ...
- OSPF协议报文
OSPF(Open Shortest Path First,开放最短路径优先)是一种内部网关协议(Interior Gateway Protocol,IGP),用于在同一个自治系统(Autonomou ...
- FDConnection lost后的处理right here
- docker发布简单python服务
进入机器创建一个目录mkdir dockerbuild1.编写简单flask代码vi flaskapp.pyfrom flask import Flaskimport os app = Flask(_ ...
- Java+Appium+Junit实现app自动化demo
1.新建maven工程和引入库 步骤参考https://www.cnblogs.com/wanyuan/p/16408758.html 2.编写代码 代码如下: import org.junit.Af ...
- WIN10 由于找不到mfc140u.dll,无法继续执行代码
最近遇到win10提示mfc140u.dll找不到,总是弹窗的问题. 网上一番百度搜索后发现给的方法都不能很好的解决,DLL修复工具需登录且收费 去下载mfc140u.dll 根本不可能找到,都是垃圾 ...