最近对一个项目的中间件进行升级,直接升级中间件,启动报错,因为springboot的版本还是1.4 版本,无法兼容高版本的中间件,无赖我采取了直接把项目springboot的版本升级到2.5,这个项目用了很多中间件 redis、dubbo、mq 等,我直接大刀阔斧把依赖全删了,重新引入了依赖。中途遇到一个问题直接把我的进度阻塞了,因为百度了10多篇帖子都没解决我的问题
问题一:java: 找不到符号(报错定位到的行是在@Data)
下面是我集合百度搜索出的答案:
- 项目用的jdk版本是否一致
- 排除打包编译的缓存文件:执行maven clean,重新compile;或者重新rebuild
- 检查mvn引入jdk版本,执行mvn -v 查看jdk版本是否和项目一致
- 清除编码工具缓存(执行invalidate caches),需要重启会重启编译器
- 启用注解
6.idea 增加一下配置 -Djps.track.ap.dependencies=false
上面几种方式都用了还是不行,我只好切换分支,再构建一下,确实是我idea的问题还是我的依赖的问题。切换到原来的分支,能正常编译,切换之后就不行。(90%就是我依赖的问题了)
解决方案:把lombok版本从继承的springboot 的1.18.20 版本 切换到 1.16.16 问题就解决了。。。。。。
(有大佬解释一下吗,为啥是找不到符号,不是找不到什么类或者方法啥的
)
问题二:明明有类,并且可以通过代码点进去,为啥编译就找不到呢
这个问题我还是纳闷了好一会儿,最后产生这个问题的原因呢,是因为我这个项目有两个子module,这个类是另一个module里面,因为都是在一个idea窗口中打开的。所以idea里面能打卡,编译就找不到。
(排查思路就是,新开一个idea窗口单独打开这个module,这个问题我遇到不只一次了
)