首頁>技術>

簡介

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, MyEclipse

Eclipse編輯器與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 IDEA

Jetbrains 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)。

23
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 架構乾貨:saltstack高可用架構