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

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

java 复制代码
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即可。

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

相关推荐
大漠孤烟s4 小时前
7.mybatisplus学习-条件构造器、插件、通用枚举、多数据源环境、MybatisX
mybatis
ee又momo4 小时前
MyBatis-Plus 用了就回不去,这些功能真香
mybatis
大漠孤烟s7 天前
4.Mybatis学习-动态sql、缓存、逆向工程
mybatis
毕业设计7038 天前
(免费领源码) SpringBoot 游戏交易平台17600-java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
java·spring boot·mysql·决策树·mybatis·idea·推荐算法
程序员JerrySUN8 天前
Jetson Edge AI 实战01:Nano、Xavier、Orin 怎么选?Jetson 硬件选型详解【视频讲解】
java·数据库·redis·安全·mybatis
linmengmeng_13149 天前
【总结】MyBatis-Plus批量插入与清表的正确姿势
java·spring boot·mysql·mybatis
vx_BS813309 天前
【项目编号:project51381】Spring Boot 婚纱摄影管理系统:套餐预约、在线咨询、支付与客片展示的一站式业务实现
java·spring boot·eclipse·tomcat·mybatis
jaysee-sjc10 天前
【苍穹外卖】Day01:从零认识企业级项目开发
java·开发语言·数据库·mysql·spring·intellij-idea·mybatis
程序猿乐锅10 天前
【黑马点评 | 第二篇】Redis 缓存更新策略与商铺缓存实现
java·网络·redis·spring·mybatis
萧瑟余晖10 天前
MyBatis 核心原理详解
架构·mybatis