簡介
Lombok是一個java庫,它可以自動插入到編輯器和構建工具中,從而簡化我們的ava程式碼。不用再重新編寫getter和equals方法。透過在類上添加註釋,可以使類帶有功能全面的生成器,自動化的日誌記錄變數等等。
總之一句話Lombok是一個透過在類上添加註解來簡化我們的java程式碼,避免編寫一些覺得相對比較臃腫的程式碼的工具包。
原理Lombok本質上就是一個實現了“JSR 269 API”的程式。在使用javac的過程中,它產生作用的具體流程如下:
javac對原始碼進行分析,生成了一棵抽象語法樹(AST)執行過程中呼叫實現了“JSR 269 API”的Lombok程式此時Lombok就對第一步驟得到的AST進行處理,找到@Data註解所在類對應的語法樹(AST),然後修改該語法樹(AST),增加getter和setter方法定義的相應樹節點javac使用修改後的抽象語法樹(AST)生成位元組碼檔案,即給class增加新的節點(程式碼塊)安裝基於編譯環境JDK9+ 與 module-info.java
支援JDK9+,假設你將自己的專案模組化(你已經編寫了一個module-info.java檔案):
javac -cp lombok.jar -p lombok.jar ...
注意,你必須將lombok新增到你的module-info.java檔案中:
module myapp { requires static lombok;}
“static”部分確保你不需要lombok在執行時出現。
JDK 1.6 - 1.8或在後續版本中沒有模組
當使用任何javac(1.6 - 1.8版本)進行編譯時,只需將lombok放在類路徑中:javac -cp lombok.jar ....
如果您還沒有將自己的專案模組化(還沒有module-info.java),那麼從1.16.20版本開始,lombok中就包含了對JDK9的支援。就像平常一樣使用lombok:javac -cp lombok.jar ...
如果你模組化了你自己的專案(你已經寫了一個module-info.java檔案),那麼對JDK9的支援:
javac -cp lombok.jar -p lombok.jar ...
注意,你必須將lombok新增到你的module-info.java檔案中:
module myapp { requires static lombok;}
“static”部分確保你不需要lombok在執行時出現。
基於構建工具Maven
要使用任何構建工具設定lombok,您必須指定lombok依賴關係是編譯原始碼所必需的,但在執行/測試/衝突/以其他方式部署程式碼時不需要出現。通常這被稱為“provided”依賴。
Lombok可以在maven central中使用,因此告訴maven下載Lombok很容易。
將lombok新增到pom檔案中要將lombok作為一個“provided”依賴,請將它新增到<dependencies>塊中,如下所示:
<dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.16</version> <scope>provided</scope> </dependency></dependencies>
JDK9+ 與 module-info.java
編譯器外掛的配置應該包含以下內容:
<annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.16</version> </path></annotationProcessorPaths>
Delomboking:Lombok Maven外掛
如果你想透過Maven使用delombok,我們推薦你使用一個Maven外掛。如果您想在lombok應用之後在原始碼上執行原始碼分析工具,或者您想生成javadoc,這是很有用的。這個外掛是開源的。閱讀更多關於lombok maven外掛的資訊(http://awhitford.github.io/lombok.maven/lombok-maven-plugin/)。
Gradle
要使用任何構建工具設定lombok,您必須指定lombok依賴關係是編譯原始碼所必需的,但在執行/測試/衝突/以其他方式部署程式碼時不需要出現。通常這被稱為“provided”依賴。
Lombok可以在maven central中使用,因此告訴maven下載Lombok很容易。
Lombok Gradle外掛有一個gradle外掛,我們推薦你使用;它使部署變得輕而易舉,並使執行附加任務(如delomboking)變得容易。這個外掛是開源的。閱讀更多關於gradle-lombok外掛的內容(https://plugins.gradle.org/plugin/io.freefair.lombok)。
沒有外掛的Gradle如果你不想使用外掛,gradle有內建的compileOnly作用域,可以用來告訴gradle只在編譯期間新增lombok。
您的build.gradle檔案內容應如下:
repositories { mavenCentral()}dependencies { compileOnly 'org.projectlombok:lombok:1.18.16' annotationProcessor 'org.projectlombok:lombok:1.18.16' testCompileOnly 'org.projectlombok:lombok:1.18.16' testAnnotationProcessor 'org.projectlombok:lombok:1.18.16'}
請記住,如果您希望在eclipse中程式設計,您仍然必須下載lombo .jar(或在gradle的快取中找到它)並將其作為jarfile執行。這個外掛使這部分變得更容易。
安卓開發有關將lombok與您的android開發整合的詳細說明,請訪問我們的android開發使用lombok頁面(https://projectlombok.org/setup/android)。
基於開發IDE環境Eclipse, Spring Tool Suite, (Red Hat) JBoss Developer Studio, MyEclipseEclipse編輯器與lombok相容。Eclipse的分支也與lombok相容,具體來說:
MyEclipseRed Hat JBoss Developer StudioJBoss Developer Studio (JBDS)Spring Tools Suite (STS)雙擊lombo .jar(可從本網站下載,或從maven庫下載;這是同一個jar)。這將啟動eclipse安裝程式,它將查詢eclipse(以及上面列出的eclipse分支),並提供將lombok安裝到這些以已安裝的eclipse中。同樣的工具也可以解除安裝lombok:
lombok安裝引導
about對話視窗
透過eclipse外掛安裝程式安裝警告:這個外掛安裝程式目前沒有簽名,我們已經放棄瞭解決這個問題的方法。
您可以直接從eclipse中安裝lombok,透過這種方式,您還可以將lombok作為團隊eclipse部署配置的一部分。為此,請使用更新站點https://projectlombok.org/p2:
選擇安裝
安裝lombok
IntelliJ IDEAJetbrains IntelliJ IDEA編輯器與lombok相容。
新增Lombok IntelliJ外掛,以增加對IntelliJ的Lombok支援:
導航至File > Settings > Plugins點選Browse repositories...搜尋Lombok Plugin點選Install plugin重啟IntelliJ IDEA您還可以檢視使用Eclipse和IntelliJ來設定Lombok,這是一篇關於相關部落格文章(https://www.baeldung.com/lombok-ide)。