开源 Ruo-Yi 项目引入 Mybatis-Plus:3.5.3 报错ClassNotFoundException:

news2025/6/8 0:22:13

开源 Ruo-Yi 项目引入 Mybatis-Plus:3.5.3 报错ClassNotFoundException:

Caused by: java.lang.ClassNotFoundException: com.baomidou.mybatisplus.extension.plugins.MybatisPlusInter

1 分析问题

控制台报错说明我们引入的 mybatis-plus 的依赖里找不到com.baomidou.mybatisplus.extension.plugins.MybatisPlusInter这个类。

去查看一下。

如下图所示,我们引入的MP版本是3.5.3,报错显示extesion包里报ClassNotFoundException异常了。

所以,去MP:3.5.3包里查看一下pom.xml文件对应的extesion依赖包的版本,如下图,是extesion:3.5.3
在这里插入图片描述

接着,去查看extension:3.5.3包里是否有报ClassNotFoundException异常的那个class文件。

如下图所示,是有的。所以我们引入的依赖没有问题。

在这里插入图片描述

不过也很清晰的看到,extension包的版本引入了两个,一个是我们引入的3.5.3,一个是3.3.2

所以,问题大概在这个extension:3.3.2这个包里。去看一下,这个包里有没有报ClassNotFoundException异常的那个class文件。

如下图所示,没有。那么问题就发现在哪里了。我们需要的是引入的3.5.3版本,但是编译的时候用的是3.3.2这个包。

在这里插入图片描述

所以,这个bug的原因就是MP依赖版本冲突,接下来只要解决掉依赖版本冲突就行了。

2 解决问题

如下,maven helper插件没有识别出这个版本依赖的冲突。

发现这个依赖在ruoyi-generate模块里。

如下,使用maven-helper插件来分析ruoyi-generate模块。确实发现了依赖冲突问题,接下来需要做的事情就是,解决冲突,由于我们需要MP-3.5.3,不需要MP-3.3.2,所以这里直接排除MP-3.3.2就OK咯!

按理说,到这里,没有冲突就好了。

但是,ruoyi-generate模块里又用到了mybatis-plus-extension依赖,就报了如下的错。

在这里插入图片描述

别慌,很简单!

这里我导入了mybatis-plus-annotation:3.5.3的依赖,这两个报错倒是没有了,不过又出现了一个问题。ruoyi-generate这个模块里的这个类用到了IdType.ID_WORKER_STR这个枚举。3.5.3版本里没有这个枚举,所以该怎么解决呢?

在这里插入图片描述

答: 原本在这个模块里就使用了3.3.2版本的 MP,所以我猜想这里用到的mybatis-plus-annotation:3.3.2依赖肯定也被排除exclude了。问题又来了,我们刚才排除掉的是mybatis-plus-extension:3.3.2依赖,并没有排除mybatis-plus-annotation:3.3.2依赖。所以我大胆猜想mp-annotation:3.3.2依赖肯定在mp-extension:3.3.2依赖里。

如果是这样,由于我们确实mp-annotation:3.3.2依赖,所以在ruoyi-generate模块里直接引入这个依赖就行了。

如下来验证我们的猜想

在这里插入图片描述

下同

果然,mp-annotation:3.3.2依赖在mp-extension:3.3.2依赖里被依赖了。所以我们排除掉mp-extension:3.3.2依赖的同时也将mp-annotation:3.3.2依赖排除了。

至此,在ruoyi-generate模块里,重新引入mp-annotation:3.3.2即可。

如下图,编译器在编译的时候并没有报错,问题成功解决!!!

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

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

相关文章

怎么恢复删除的回收站数据?分享多种恢复方法

在日常使用电脑的过程中,回收站是我们经常打交道的一个功能。它帮助我们管理不再需要的文件,但有时候,我们可能会不小心删除了重要文件,或者误清空了回收站。那么,面对这种情况,我们该如何恢复删除的回收站…

小程序面试题之性能优化提高10道

1.你使用过哪些方法,来提高微信小程序的应用速度? 提高页面加载速度 用户行为预测 减少默认data的大小 组件化方案 控制包的大小 压缩代码,清理无用代码 采用分包策略 启用本地缓存 参考地址:https://blog.csdn.net/wu_xianqiang/…

Linux上的可执行文件在Windows上是不能运行的

一、概要 1、可执行文件的格式 Linux上的可执行文件是elf格式的 Windows上的可执行文件是exe格式的 Linux上的可执行文件在Windows上是不能运行的 2、程序的普通构建与静态构建 普通构建: 一个.c文件,用gcc命令编译成可执行文件(程序)&#xff0c…

数据结构排序篇上

排序的概念及其运用 排序的概念 排序 :所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性 :假定在待排序的记录序列中,存在多个具有相同的关键字的记录&…

分类预测 | Matlab实现基于迁移学习和GASF-CNN-Mutilhead-Attention格拉姆角场和卷积网络多头注意力机制多特征分类预测/故障识别

分类预测 | Matlab实现基于迁移学习和GASF-CNN-Mutilhead-Attention格拉姆角场和卷积网络多头注意力机制多特征分类预测/故障识别 目录 分类预测 | Matlab实现基于迁移学习和GASF-CNN-Mutilhead-Attention格拉姆角场和卷积网络多头注意力机制多特征分类预测/故障识别分类效果基…

动态规划原理及其在优化问题中的应用解析

动态规划原理及其在优化问题中的应用解析 一、最优子结构二、重叠子问题三、何时使用动态规划法四、伪代码示例五、C代码示例七、详细说明动态规划原理7.1、最优子结构7.2 重叠子问题7.3 动态规划的实现 八、结论 动态规划是一种解决优化问题的方法,它通过将原问题分…

神经网络--反向传播算法推导

神经网络–反向传播算法推导 文章目录 神经网络--反向传播算法推导概述神经网络模型反向传导算法 概述 以监督学习为例,假设我们有训练样本集 ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i)),那么神经网络算法能提供一种复杂且非线性的假设模型 …

滚雪球学Java(75):Java零基础,轻松学会文件读写技巧

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好…

mp3怎样才能转换成wav格式?音频互相转换的方法

一,什么是WAV WAV,全称为波形音频文件(Waveform Audio File Format),是一种由微软公司和IBM公司联合开发的音频文件格式。自1991年问世以来,WAV格式因其无损的音频质量和广泛的兼容性,成为了多…

【Godot4.2】CanvasItem绘图函数全解析 - 7.自定义节点TextBoard

概述 之前发布的几篇文章几乎阐述了CanvasItem绘图函数最基础的内容。 本篇结合draw_style_box()和TextParagraph类,自定义了一个可以自适应宽高显示多行文本,且带有一个样式盒作为背景的文字板节点TextBoard。 系列目录 0.概述1.绘制简单图形2.设定绘…

kali工具----域名IP及路由跟踪

域名IP及路由跟踪 测试网络范围内的IP地址或域名也是渗透测试的一个重要部分。通过测试网络范围内的IP地址或域名,确定是否有人入侵自己的网络中并损害系统。不少单位选择仅对局部IP基础架构进行渗透测试,但从现在的安全形势来看,只有对整个I…

RHCE--dns正反向解析小实验

一、准备工作 1.关闭防火墙 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld 2.安装软件 [rootserver ~]# yum install bind -y 二、正向解析 服务端IP客户端IP网址192.168.203.128192.168.203.130www.openlab.com 服务端配置静态ip [root…

人工智能|机器学习——基于机器学习的信用卡办卡意愿模型预测项目

一、背景介绍 在金融领域,了解客户的信用卡办卡意愿对于银行和金融机构至关重要。借助机器学习技术,我们可以根据客户的历史数据和行为模式预测其是否有办理信用卡的倾向。本项目通过Python中的机器学习库,构建了两个常用的分类模型&#xff…

Mistral AI突围:开源大模型Mixtral 8x22B颠覆行业格局

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Spark-Scala语言实战(16)

在之前的文章中,我们学习了三道任务,运用之前学到的方法。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。 Spark-Scala语言实战&#x…

开发板仿真网站(wokwi)初次上手指南(Arduino UNO项目)

在本篇文章中将详细介绍在开发板仿真网站(wokwi)上实现Arduino UNO控制LED灯亮灭。 将学习到如何连接部件、编写代码并在线模拟Arduino项目! 开发板仿真网站(wokwi)简介 可参考《一个免费的在线的开发板仿真网站&#…

IEDA 启动项目时出现 java: java.lang.OutOfMemoryError: GC overhead limit exceeded 异常

问题 通过Idea启动项目时,出现java: java.lang.OutOfMemoryError: GC overhead limit exceeded 内存溢出问题; 解决方案 错误是发生在编译阶段,而不是运行阶段: 【1】idea编译Java项目使用的虚拟机和idea软件自身使用的虚拟机是…

【Linux】应用层协议:HTTP

URL 在之前的文章中我们实现了一个网络版本的计算器,在那个计算器中揉合了协议定制以及序列化反序列化的内容,我们当时也自己定制了一套协议标准,比如请求和响应的格式应该是什么?如何读到一个完整的报文?支持的运算符…

无人机巡检技术革命性变革光伏电站运维管理

在中国广袤的大地上,光伏电站如雨后春笋般崛起,晶体硅组件板在阳光下熠熠生辉,为人们带来了源源不断的绿色能源。然而,随着光伏产业的迅猛发展,电站运维管理面临着前所未有的挑战。而无人机巡检技术的引入,…

MySQL进阶-合

目录 1.使用环境 2.条件判断 2.1.case when 2.2.if 3.窗口函数 3.1.排序函数 3.2.聚合函数 3.3.partiton by ​​​​​​​3.4.order by 4.排序窗口函数 5.聚合窗口函数 1.使用环境 数据库:MySQL 8.0.30 客户端:Navicat 15.0.12 MySQL进阶…