我使用 Lombok 没有任何问题,直到今天,我的 Intellij 自动更新到最新版本 2020.3 11 月 30 日构建。之后,任何 Lombok 注释都不再被识别。
我的 Java 项目仍然使用 Maven 从命令行构建,但注释在项目中完全被忽略,无法手动运行任何单元测试。
到目前为止我尝试过的事情:
没有任何作用。可能发生了什么?知道我可以尝试做什么吗?
总结一下,请转到 IntelliJ 首选项 (Cmd + ,)
Preferences -> Build, Execution, Deployment -> Compiler
搜索此选项:
User-local build process VM options (overrides Shared options):
并添加此值:
-Djps.track.ap.dependencies=false
解决方法就在这里,直到他们解决实际问题:
https://youtrack.jetbrains.com/issue/IDEA-250718#focus=Comments-27-4418347.0-0
(请参阅 IJ 修复的屏幕截图)
我的问题与我的 lombok 版本有关
在将我的 IntelliJ 升级到 2020.03 之前,我的 lombok 版本是
1.18.10
和 lombok 插件 0.32-EAP
将我的 lombok 依赖项升级到
1.18.16
后,它再次开始工作,没有任何问题。看起来社区版还没有捆绑该插件。
如果有必要,我不这样做,但当我阅读 Lombok 插件的 README repo
时,我的第一个行动是卸载插件我设法让它在 gradle 项目上运行(Intellij 2020.3.2) 通过在 build.gradle 中使用它:
annotationProcessor 'org.projectlombok:lombok:1.18.18'
implementation 'org.projectlombok:lombok:1.18.18'
我认为重要的一点是将其声明为“annotationProcessor”以将其包含在 gradle 构建中。 我什至不必搞乱“用户本地构建过程虚拟机选项”,甚至在 Intellij 设置中也没有勾选“启用注释处理”。 所以我猜 gradle 正在处理 Lombok 一代,而不是 IDEA。 但至少在花费数小时尝试修复 IntelliJ 之后它终于可以工作了。
2020.3版本的社区版似乎没有捆绑lombok。预计2020.3.1版本修复。
抱歉各位,我必须确认一下,忘记正确添加了 进入最后一个社区建设。查看 Jetbrains Yourtrack 上的错误: https://youtrack.jetbrains.com/issue/IDEA-257311
Ultimate 2020.3 版本包含预期的 lombok 插件 默认。
lombok 插件应该包含在两个 IntelliJ 发行版中 (终极版和社区)从 2020.3 版本开始。有东西得到 错误,我们正在努力修复。
现已计划在 IntelliJ 社区版本 2020.3.1 中进行修复
更新
2020.3.1 社区发布,现已默认包含lombok插件
这就是 lombok 的问题,每当 IntelliJ 提供升级时 lombok 就会开始哭泣。 IntelliJ 2020.2 也发生了同样的情况
现在有2个解决方案
提供的解决方案不适用于我的 IntelliJ,所以我添加了 Lombok 插件 ( Lombok 插件通过 Market Place 安装。) 到我的社区版本 (2023.3.4) 并添加了 Maven 依赖项,但未指定任何版本规范。它对我来说非常有效。
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency>
我没有启用注释处理器。
安装 Lombok 插件并启用注释处理器应该可以满足需要。如果问题仍然存在,那么我认为您应该报告错误并查看他们的回复。