Eclipse - 安裝lombok後註解無效
安裝 lombok
lombok 的安裝過程挺簡單的,網上已經有很多相關的部落格,這裡就不在多說了,可以參考這篇: eclipse整合lombok註解不起作用
但是我按照網上的方式安裝之後,註解一直不起作用,執行的時候一直報找不到getter,setter方法。
其實這裡面有個坑,部落格裡面都有說,在安裝好lombok後,需要重新啟動Eclipse,重新 編譯 專案。註解不起作用的關鍵就在於你是如何編譯專案的。
編譯專案
- 我們一般編譯專案的方式可能是選中專案然後點projecg -> clean
但是這種編譯專案的方式是不行的,我們把編譯後生成的.class檔案反編譯一下看看。
這是檔案原始碼:
import lombok.AllArgsConstructor; import lombok.Getter; @Getter @AllArgsConstructor public enum ResponseCode { SUCCESS(10001,"請求成功"), ERROR(10000,"請求失敗"), ILLEGAL_ARGUMENTS(1,"請求引數不合法") ; private final Integer code; private final String desc; }
class 檔案反編譯後是這個樣子
public enum ResponseCode { SUCCESS(Integer.valueOf(10001), "請求成功"), ERROR(Integer.valueOf(10000), "請求失敗"), ILLEGAL_ARGUMENTS(Integer.valueOf(1), "請求引數不合法"); private final Integer code; private final String desc; }
我們可以看到,反編譯後的檔案裡面並沒有生成getter ,setter方法還有構造方法
- 我們用另外一種方式來編譯專案看看,即用maven的編譯外掛來編譯專案,使用命令
clean compile
再來看看,class檔案是這樣的
package com.beautifulsoup.chengfeng.enums; public enum ResponseCode { SUCCESS(Integer.valueOf(10001), "請求成功"), ERROR(Integer.valueOf(10000), "請求失敗"), ILLEGAL_ARGUMENTS(Integer.valueOf(1), "請求引數不合法"); private final Integer code; private final String desc; private ResponseCode(Integer code, String desc) { this.code = code;this.desc = desc; } public Integer getCode() { return this.code; } public String getDesc() { return this.desc; } }
可以看到我們需要的方法都生成了!
編譯時如果報如下的錯誤:
[ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? [INFO] 1 error [INFO] ------------------------------------------------------------- [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.436 s [INFO] Finished at: 2017-06-28T11:16:07+08:00 [INFO] Final Memory: 10M/151M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project manage: Compilation failure [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? [ERROR] -> [Help 1]
可以用如下的部落格解決,親測可用!
關於Maven專案build時出現No compiler is provided in this environment的處理