MyBatis-Plus升级踩坑记录:一个依赖缺失引发的“惨案”
本文记录了一次从 Java 8 + Spring Boot 2.x 升级到 Java 21 + Spring Boot 3.5.0 的踩坑实录。整个过程耗时 4+ 小时,网上搜到很多记录都是人云亦云,ai也是给出各种跑偏的方案,包括且不限于IDEA版本、Maven缓存、Maven 依赖树一路跑偏,最终解决也很简单。记录一下希望这篇心得能让后来者10 分钟解决同样问题。
问题现象
升级后启动项目,MybatisPlus分页插件配置类直接编译报错:
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; // ❌ 找不到符号
错误信息:
java: 找不到符号
符号: 类 MybatisPlusInterceptor
位置: 程序包 com.baomidou.mybatisplus.extension.plugins
排查弯路
第一轮:怀疑 Lombok & Java 21 兼容性问题
操作:升级 Lombok 到 1.18.30+,清理 IDEA 缓存,Maven 强制刷新
结果:无效,错误依旧
误判:以为是 Java 21 字节码或 IDEA 索引问题
第二轮:怀疑依赖下载失败
操作:手动删除 Maven 本地仓库,reimport,检查 External Libraries
结果:mybatis-plus-extension-3.5.12.jar 确认存在,右键能打开源码
误判:以为是 Maven 或 IDEA 的 classpath 加载 bug
第三轮:怀疑模板引擎污染
操作:排查 Velocity、代码生成器模板冲突
结果:完全无关
误判:以为是代码生成器依赖和核心依赖冲突
第四轮:AI开始鬼扯编辑器有问题,让手动引入依赖,有给出很多不靠谱的建议。
最后通过网络搜索很多结果后才发现靠谱的建议,MyBatis-Plus 3.5.9 版本开始,分页插件依赖的 jsqlparser 被拆分为独立模块,官方文档未明确说明,导致升级后必须手动引入。
MyBatis-Plus 核心包(mybatis-plus-extension)在 3.5.9 后不再包含PaginationInnerInterceptor,要使用它还要单独引用mybatis-plus-jsqlparser
在 pom.xml 中单独添加 mybatis-plus-jsqlparser 依赖:
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-jsqlparser</artifactId> <version>3.5.12</version> <!-- 版本与 mybatis-plus 保持一致 --> </dependency>
刷新 Maven,问题解决。
AI确实可以提升不少效率,但是一旦它开始胡言乱语,真的会浪费很多时间,这个时间比自己找原因还要久,使用AI还是要慎重。
相关文章
- MyBatis-Plus升级踩坑记录:一个依赖缺失引发的“惨案”
- spring+netty实现一个最小可运行的im server
- windows修改ollama程序和模型保存位置
- UE5中使用蓝图实现对象池功能
- UE5开发2D/3D混合平台跳跃游戏优化操作体验
- UE5敌人直接放置场景ok,代码生成不执行AI
- UE5中开发HD-2D游戏的优化设置与2D角色导入技巧
- nginxSpringboot项目常见配置
- 在MacOS上部署ComfyUI的指南
- 解决UE5开发Topdown2D动作游戏的旋转问题
- UE5开发2D游戏设置排序的步骤.
- 大幅提升FPS!Unreal Engine 5 最佳 2D 设置
- Aseprite在线编译教程
- 探索Nexa AI:开源边缘智能的新纪元
- Springboot项目允许根目录txt文件被访问
- lnmp一键安装包多php环境安装
- Python虚拟环境整合包制作:一键打包与运行指南
- aws云服务器使用root登录
- nginx配置允许跨域
- nginx配置springboot反向代理,同时允许上传路径可以直接被访问