【Caused by】Maven編譯錯誤:找不到符號(Cannot find symbol)

文章目錄

前言

mvn installmvn package之後報“Cannot find symbol”錯誤,這個問題一般有幾種原因:

  • 類的包名有誤
  • maven-complier-plugin版本不兼容:如果是jdk1.8的代碼,compiler也應該是對應的版本
  • 本地maven倉庫舊jar包未清除:mvn clean install
  • IDE緩存未刷新:如IDEA,File->Invalidate Caches/Restart,可清除IDE的緩存

但筆者在嘗試了上述所有方法之後,編譯仍然報錯。

原因

筆者重新檢查了代碼的所有變更,發現在pom中引進了新的依賴,即lombok(利用其@Data註解可動態生成類的setter/getter等)。stash所有變更之後,筆者僅保留了lombok註解的類和調用方法,最後發現是調用方法中找不到註解類的setter方法。

原因簡單地來說,就是maven-compiler-plugin沒有使用lombok的Annotation Processor去動態生成setter/getter方法,詳見1

解決方法:

  1. 升級maven-compiler-plugin至3.5以上
  2. 降級lombok至1.14.8以下

  1. https://stackoverflow.com/a/47684351 ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章