@Controller
@Slf4j
public class HomeController {
@Autowired
private HomeService homeService;
@PostMapping("/textgen")
public ResponseResult<ModelResponseDTO> textGen(@RequestBody ModelTextRequest request) {
log.info("Recevice request : " + request);
return homeService.processTextGen(request);
}
}
报错
java: 找不到符号 符号: 变量 log 位置: 类 com.ren.controller.HomeController
离谱,去看了一眼 Lombok 也导入成功了,也怀疑了版本问题,更换了最新最常用的版本(1.18.30),还是不行。
找了一些教程,主要有以下方法:
- Lombook插件没安装。自查了一下,安装了,pass。
- Springboot 依赖冲突。springboot-start中已有日志实现,但是又导入了logback-classic。自查,没有这个情况,pass。
- 非springboot项目。这不可能,绝对是他妈来捣乱的,pass。
- 设置里面没开
enable annotation processing,编译器没使用javac。自查,都没问题,pass。 - build.gradle中没有指定lombok为注解处理包。自查,指定了,pass。
真是拿他没招了。
思考一下,他这个log没报错,并且输入log的时候有提示,就说明导入肯定是成功的,但是在编译的时候出了问题。
尝试去看看是不是jvm编译的问题,添加-Djps.track.ap.dependencies=false参数,这个参数可以禁止 JPS 跟踪注解处理器依赖,缓解注解带来的相关问题。可惜,还是没用。
思考之余突然灵光一现,新建项目的时候我是想创建Springboot 2.x 的,但是当时提供的选项都是 3.x 。也是抱着尝尝鲜的心态,使用了 Springboot 3.x ,立刻去看了一下Springboot 版本,3.4.10。那就有可能是框架太新了导致的一些问题,搜索了一下 Springboot 新版对 Lombok 的支持,逐渐有了眉头,将 Lombok 版本升级到了1.18.40,完美解决。