我一直在将一个基于 Spring3 的项目重构为 Spring5,并遇到了一个奇怪的情况,突然所有与 lombok 相关的代码都没有生成。例如
@Slf4j
public class MyClass {
...
log.info("something");
会抛出这个错误
cannot find symbol
symbol: variable log
location: MyClass
IntelliJ IDEA 也开始无法正确执行任何操作。 Maven 刷新、清理或标准 IDE 构建只会在明显没有问题的行上抛出错误。
由于我最近完成了大规模的结构化查找和替换以及多次重构操作,我无法判断我做了什么破坏了它。
最佳答案
虽然 IntelliJ 只是崩溃并且无法编译任何代码,但使用 Maven 的命令行编译显示了此错误:
[ERROR] /C:/dev/source/...../MySecuredWebService.java:[83,5] org.springframework.security.access.prepost.PreAuthorize is not a repeatable annotation type
事实证明,我不小心用@PreAuthorize注释了一个方法两次。这阻止了 Spring 和 lombok 进行任何注释处理,因此也破坏了 IntelliJ。只需删除错误的注释即可再次修复所有问题。
关于java - 为什么 lombok 突然停止了我的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67307378/