当前位置: 首页 > ai >正文

idea2023.3遇到了Lombok失效问题,注释optional和annotationProcessorPaths即可恢复正常

idea2023.3遇到了Lombok失效问题,但是另一个小版本的就没有
自己摸索了下,发现和下面这个链接提出的基本一样:

SpringBoot 3 中Lombok注解失效的几种解决方法

主要就是一个optional标签问题,另一个是annotationProcessorPaths问题
虽然问了chatGPT,optional是为了防止子项目也导入lombok依赖,即使用了
<optional>true</optional>,那么当前模块依赖 Lombok,但下游依赖(其他项目引用你这个 jar)时,不会自动传递 Lombok。

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><annotationProcessorPaths><path><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></path></annotationProcessorPaths></configuration>
</plugin>

作用:显式告诉 Maven 编译插件,在 编译期 使用哪些 注解处理器。
比如 Lombok 的注解处理器会在编译时扫描 @Data、@Getter 等注解,然后生成对应的 getXxx/setXxx、toString 等方法写进 .class 文件。

如果没有 annotationProcessorPaths:
在现代 Maven(3.6+)和 Spring Boot 2.2+ 里,其实会自动发现 Lombok 的注解处理器,所以不写也行。
在老版本 Maven 或 IDE 配置不当时,可能就不生效,需要显式加上。

至于版本号,由于当前项目的parent是spring-boot-starter-parent,他的parent是spring-boot-dependencies已经有了对Lombok的版本管理,其实不加也行
在这里插入图片描述

我这里使用的idea是2023,当然不算老,maven使用idea默认带的仓库,没有自己配置,不知道是否有影响。

但是不管怎么样,看起来上面两个配置都不会导致lombok失效,但是事实却是注释掉两个后,就可以正常使用lombok了。就很离谱

使用clean不断清理target目录,来辅助测试注释不同内容的效果

在这里插入图片描述
使用clean来清理删除target
在这里插入图片描述
至于

<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration>
</plugin>

作用:在 打包成可执行 JAR 的时候,把 Lombok 排除掉,不放进最终的 fat jar。
原因就是 Lombok 只在编译时有用,已经生成的target里面就已经有了Lombok生成后的东西了,运行时不需要Lombok;如果不排除,它会跟着进 jar,增加包体积。
在这里插入图片描述

也可以去打包好的jar包里面,找到对应的bean类【而是在 BOOT-INF/classes/ 对应的包路径下】,即Employee类,发现确实是已经生成好了get/setter方法等,说明lombok生效了
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

可以试用缓存失效的方式【✳】

如果lombok还是不行,或者出现了其他的maven依赖问题,如果你确定当前的maven依赖导入没错,但是就是不生效,那么可以用如下方法

在这里插入图片描述
在这里插入图片描述
全部勾上并点击失效重启。

http://www.xdnf.cn/news/19058.html

相关文章:

  • Redis与MySQL数据不一致问题
  • 【MYSQL | 基础篇 多表查询】
  • FunctionAI 图像生成:简化从灵感到 API 调用的每一步
  • Kingbase-Mysql兼容模式下LOAD DATA INFILE语法再体验
  • idea控制台从properties中取值然后打印出现控制台乱码问题
  • (论文速读)MAPTNet——少样本表面缺陷分割方法
  • Java图形图像处理【基础篇】【二】
  • 前端-什么是Vue
  • DMZ层Nginx TLS 终止与安全接入配置实战20250829
  • OpenCV 图像轮廓检测与相关技术全解析
  • 三维铸件模型分解:基于微分几何与拓扑结构的分析方法
  • Ubuntu虚拟机磁盘空间扩展指南
  • 基于LangChain框架搭建AI问答系统(附源码)
  • InnoDB存储引擎底层拆解:从页、事务到锁,如何撑起MySQL数据库高效运转(下)
  • MySQL 中如何解决深度分页的问题?
  • 嵌入式接口通识知识之RGB接口
  • 基于机器学习的多个模型的预测Backtrader自动化交易系统设计
  • 关于shell命令的扩展
  • AlexNet:点燃深度学习革命的「卷积神经网络之王」
  • 接口测试工具:Postman详解
  • 计算机专业考研备考建议
  • idea2025.2中maven编译中文乱码
  • 编译esp32报错解决办法
  • 机器学习复习
  • 【go】三端实时反馈系统的设计,websocket实现
  • 12.压缩和打包
  • 创建第一个 Electron 应用:Hello World 示例
  • 【算法】15. 三数之和
  • 阻塞,非阻塞,同步,异步的理解
  • Linux -- 进程间通信【命名管道】