Lombok与IntelliJ 2020.3社区版不兼容。

52

我之前一直使用Lombok没有遇到任何问题,但今天我的Intellij自动更新到最新版本2020.3 11月30日版本后,任何Lombok注解都不再被识别。

尽管我的Java项目在命令行中仍能构建,但在项目中完全忽略了注解,并且无法手动运行任何单元测试。

我已尝试的方法:

  • 重新安装Lombok插件
  • 重启Intellij
  • 重启电脑
  • 使缓存失效
  • 从github上重新克隆项目
  • 检查是否启用了注解处理器

以上所有尝试均未起作用。可能发生了什么?有什么我可以尝试做的吗?


1
似乎与以下内容相关:https://dev59.com/llEG5IYBdhLWcg3wbNXX#66174087 - Sled
9个回答

80

总结一下,前往IntelliJ首选项 (Cmd + ,)

首选项 -> 构建、执行、部署 -> 编译器

搜索以下选项:

用户本地构建进程 VM 选项(覆盖共享选项):

并添加此值:

-Djps.track.ap.dependencies=false


6
适当的解决方法是更新Lombok依赖项:https://github.com/mplushnikov/lombok-intellij-plugin/issues/988#issuecomment-737328145。 - CrazyCoder
2
我还需要运行“重建(Rebuild)”而不是“构建(Build)”才能使其正常工作。 - Searene

11

这解决了我遇到的同样问题。你提供的问题似乎在2020.3中已经解决了,你知道是否存在回归吗? - Loïc
1
不太确定...但链接显示此问题已在203.4267版本中修复。但我的版本是203.5981.155,该漏洞仍然存在。只有使用解决方法,IJ 才能正常工作。 - user1883212
这个问题实际上应该在最新的IDE和Lombok插件版本中得到解决,不需要设置-Djps.track.ap.dependencies=false选项。您能否告诉我,在2020.3版本中,如果不手动设置此选项,确切的Lombok插件版本是什么?谢谢。 - Andrey
@Andrey -- 请问2020.3版本的Lombok插件发布了吗?我在Github网站上找不到(最后一次发布是0.33-2020.2)。JetBrains的市场也显示同样的情况(最后一次发布是10月28日)。 - sfitts
现在插件已经和IntelliJ IDEA捆绑在一起了。因此,在更新后,插件也应该被更新。要检查您是否拥有最新版本,请使用“帮助”|“检查更新”操作。 - Andrey

4

我之前在2020.2版本中使用Lombok插件很顺利,但在2020.3.1版本中,Lombok插件已经被包含(并且已经被包含了)。

Lombok plugin bundled, Idea 2020.3

...但是我遇到了编译错误,例如无法解析符号'log'(使用@Slf4j时)

我通过删除项目中的.idea并重新打开解决了这个问题...

编辑:今天我又遇到了类似的问题(我们的Git中没有.idea),不确定那是否是一个解决方法,但我检查了插件(它不在上面的截图中),之后它开始工作了,但我从cmd(Maven)构建它并尝试了一些其他事情,所以我不确定什么是真正的解决方法。


3

我通过在build.gradle中精确使用以下代码,成功将其应用于Gradle项目(Intellij 2020.3.2):

annotationProcessor 'org.projectlombok:lombok:1.18.18'
implementation 'org.projectlombok:lombok:1.18.18'

我认为重要的一点是将其声明为“annotationProcessor”,以便在gradle构建中包含它。 我甚至不需要在“用户本地构建过程VM选项”中进行任何操作,甚至在Intellij设置中也没有选中“启用注释处理”。 所以我猜想gradle正在处理Lombok生成,而不是IDEA。 但至少经过数小时的尝试修复IntelliJ后,它最终可以正常工作。


3
我的问题与我的lombok版本有关。
在将IntelliJ升级到2020.03之前,我的lombok版本是1.18.10,lombok插件为0.32-EAP。
升级我的lombok依赖项到1.18.16后,它再次开始正常工作,没有任何问题。看起来插件尚未捆绑在社区版中。
我不知道是否必要,但当我阅读Lombok插件的README repo时,我的第一步是卸载该插件。

IntelliJ IDEA 2020.3(社区版) 构建#IC-203.5981.155,于2020年11月30日构建 运行时版本:11.0.9+11-b1145.21 amd64 VM:由JetBrains s.r.o.提供的OpenJDK 64位服务器VM。 Linux 5.8.18-1-manjaro GC:ParNew,ConcurrentMarkSweep 内存:1892M 核心:8 非捆绑插件:google-java-format,Lombook插件 当前桌面:GNOME - Rogério Ramos
1
这确实是Lombok中的一个bug,而且已经在一段时间前修复了,因此解决方案是更新到当前的Lombok版本。您需要更新Lombok依赖本身,而不是插件:https://github.com/rzwitserloot/lombok/issues/2592。另请参见[此评论](https://github.com/mplushnikov/lombok-intellij-plugin/issues/988#issuecomment-737328145)。 - CrazyCoder

1

似乎在2020.3版本的社区版中未捆绑lombok。修复预计在2020.3.1版本中推出。

来自Lombok插件GitHub问题

抱歉,大家,我必须确认,上次社区构建中忘记正确添加它了。请参见Jetbrains Yourtrack上的错误: https://youtrack.jetbrains.com/issue/IDEA-257311

Ultimate 2020.3版本按预期默认包含lombok插件。

从2020.3版本开始,lombok插件应该包含在IntelliJ分发(Ultimate和Community)中。出现了一些问题,我们正在努力解决。

修复计划在IntelliJ Community 2020.3.1版本中推出

更新

已发布2020.3.1社区版,现在默认包含lombok插件


1

0

这是 lombok 的问题,每当 IntelliJ 提供升级时,lombok 就会开始抱怨。IntelliJ 2020.2 也发生了同样的情况。

现在有两个解决方案:

  1. 等待 lombok 的开发人员提供与 IntelliJ 2020.3 兼容的升级版本。
  2. 将 IntelliJ 降级到之前的工作版本。对我来说,IntelliJ 2020.2 工作得非常好。

1
这确实是Lombok中的一个bug,而且已经在一段时间前修复了,因此解决方案是更新到当前的Lombok版本。请不要将其与Lombok IntelliJ IDEA插件混淆。您需要更新Lombok依赖本身,而不是插件:https://github.com/rzwitserloot/lombok/issues/2592。另请参见[此评论](https://github.com/mplushnikov/lombok-intellij-plugin/issues/988#issuecomment-737328145)。 - CrazyCoder
1
如果你在谈论插件的话,你的答案是错误的。解决方法是更新依赖版本。Lombok插件作者现在为JetBrains工作,并且Lombok插件已经捆绑在IntelliJ IDEA中了,因此您无需像以前一样单独安装或手动更新它。从现在开始,它将始终与当前的IDE版本兼容。这个问题无法通过插件更新来解决。 - CrazyCoder
1
不,这两个没有关联。 - CrazyCoder
1
请查看我上面的评论。Lombok插件现在已经与IntelliJ IDEA捆绑在一起了。仓库插件版本目前比IntelliJ IDEA Ultimate下载版附带的版本要旧。 - CrazyCoder
2
我在JetBrains工作。您可以从https://www.jetbrains.com/idea/download/index.html下载并安装2020.3 Ultimate,自行检查。 IntelliJ IDEA Community 2020.3尚未捆绑Lombok,但这是一个已知问题(https://youtrack.jetbrains.com/issue/IDEA-257311),修复计划在2020.3.1更新中进行。 - CrazyCoder
显示剩余6条评论

-1
安装Lombok插件并启用注解处理器即可完成所需的操作。如果问题仍然存在,我认为您应该报告错误并查看他们的回复。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接