我一直在将一个基于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。只需删除错误的注释就可以再次修复一切。