升級IDEA後Lombok不能用了,如何解決?

  • 2021 年 7 月 12 日
  • 筆記

今天到工作室比較晚,在電腦前吃著早飯,看到提示IDEA提示升級,尋思已經有好久沒有升過級了。一樣等著,就升級下吧。

升級完畢重啟之後,突然發現好多錯誤,原來的應用也沒法啟動了。仔細一看報錯資訊,是由於Lombok相關的註解似乎都沒有生效。

比如:用到@Slf4j的類里,會有類似這樣的報錯:

java: 找不到符號
  符號:   變數 log
  位置: 類 com.didispace.UserService

IDEA還提示,現在使用的編譯器不支援lombok

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.$Proxy26
  Lombok supports: sun/apple javac 1.6, ECJ

搜索一番,是由於IDEA版本導致的Lombok失效,不過這個問題後來解決了。
所以,我們只需要更新lombok版本,使用1.18.14及之後的版本即可:

<dependency>
 <groupId>org.projectlombok</groupId>
 <artifactId>lombok</artifactId>
 <version>1.18.14</version>
 <scope>provided</scope>
</dependency>

如果是Spring Boot用戶,往往不寫版本號,因為2.x開始,就Spring Boot就把lombok的版本一起納入了。有些Spring Boot的老版本就比較容易出現這個問題,比如DD這邊出問題的工程就是使用的2.1.3,這裡默認引入的lombok版本是1.18.6。

因為Lombok版本低,所以在IDEA升級之後就出了這樣的問題。手工維護版本到1.18.14之後,得到解決。


如果上面的辦法無法解決你的問題,那麼再看看下面這些,或許可以幫你解決問題:

  1. Lombok插件是否安裝、是否開啟

  1. Annotation Processors中的Enable annotation processing是否勾選

  1. 在Compiler中增加參數配置:-Djps.track.ap.dependencies=false

歡迎關注我的公眾號:程式猿DD,分享外面看不到的乾貨與思考!