idea较新版本识别不了lombok生成的方法

现象
idea版本:

IntelliJ IDEA 2021.1.1 (Ultimate Edition)
Build #IU-211.7142.45, built on April 30, 2021

lombok版本

1.18.16

编译的时候报错:

java: You aren't using a compiler supported by lombok, so lombok will not work and has been disabled.
Your processor is: com.sun.proxy.$Proxy32
Lombok supports: OpenJDK javac, ECJ

新版本idea所使用的的java compilier编译器,lombok用不来, 得是 javac
所以 @Getter @Setter 等lombok注解就没法在pre-compile的时候没法生成对应的方法了

问题排查
https://github.com/projectlombok/lombok/issues/2592

IntelliJ is now wrapping the ProcessingEnvironment in a Proxy. This lead to a problem for us at MapStruct (mapstruct/mapstruct#2215). While trying to fix that and testing with our examples I realized that our examples with Lombok are not compiling anymore.

大致意思是,IntelliJ新版本在 ProcessingEnvironement 预编译的时候是以代理的方式来执行的,不再是直接 javac方式, 所以 lombok依赖的 javac方式的 annotation processors 不再生效了

解决办法
IntelliJ的开发人员在这里有回复 https://youtrack.jetbrains.com/issue/IDEA-252069
在这里插入图片描述
Intellij使用包装类是为了收集数据,通过不断分析这些数据来帮助改进文件编译的正确性; lombok的这个判断逻辑有点太死板了 他们得改
在这里插入图片描述
在这增加参数: -Djps.track.ap.dependencies=false
在这里插入图片描述

就能正常处理 lombok注解了,
同时提示

java: JPS incremental annotation processing is disabled. Compilation results on partial recompilation may be inaccurate.
 Use build process "jps.track.ap.dependencies" VM flag to enable/disable incremental annotation processing environment.

原文链接:https://www.cnblogs.com/mushishi/p/14835575.html

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值