Lombok 編譯器外掛程式
Kotlin Lombok 編譯器外掛程式允許在同一個 Java/Kotlin 混合模組中,讓 Kotlin 程式碼產生並使用 Java 的 Lombok 宣告。 如果您從另一個模組呼叫這些宣告,則不需要在該模組的編譯過程中使用此外掛程式。
Lombok 編譯器外掛程式無法取代 Lombok,但它能幫助 Lombok 在 Java/Kotlin 混合模組中運作。 因此,使用此外掛程式時,您仍需照常配置 Lombok。 進一步了解如何配置 Lombok 編譯器外掛程式。
支援的註解
此外掛程式支援以下註解:
@Getter,@Setter@Builder,@SuperBuilder@NoArgsConstructor,@RequiredArgsConstructor, 以及@AllArgsConstructor@Data@With@Value
我們正持續開發此外掛程式。若要了解詳細的目前狀態,請造訪 Lombok 編譯器外掛程式的 README。
目前我們沒有支援 @Tolerate 註解的計畫。然而,如果您在 YouTrack 中為 @Tolerate 問題投票,我們可以考慮。
如果您在 Kotlin 程式碼中使用 Lombok 註解,Kotlin 編譯器會忽略它們。
Gradle
在 build.gradle(.kts) 檔案中套用 kotlin-plugin-lombok Gradle 外掛程式:
plugins {
kotlin("plugin.lombok") version "2.3.0"
id("io.freefair.lombok") version "9.1.0"
}plugins {
id 'org.jetbrains.kotlin.plugin.lombok' version '2.3.0'
id 'io.freefair.lombok' version '9.1.0'
}請參閱此包含 Lombok 編譯器外掛程式使用範例的測試專案。
使用 Lombok 配置檔案
如果您使用 Lombok 配置檔案 lombok.config,則需要設定檔案路徑,以便外掛程式能找到它。 路徑必須相對於模組目錄。 例如,將以下程式碼新增至您的 build.gradle(.kts) 檔案中:
kotlinLombok {
lombokConfigurationFile(file("lombok.config"))
}kotlinLombok {
lombokConfigurationFile file("lombok.config")
}請參閱此包含 Lombok 編譯器外掛程式與 lombok.config 使用範例的測試專案。
Maven
若要使用 Lombok 編譯器外掛程式,請將 lombok 外掛程式新增至 compilerPlugins 區段,並將 kotlin-maven-lombok 相依性新增至 dependencies 區段。 如果您使用 Lombok 配置檔案 lombok.config,請在 pluginOptions 中為外掛程式提供其路徑。將以下行新增至 pom.xml 檔案:
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<configuration>
<compilerPlugins>
<plugin>lombok</plugin>
</compilerPlugins>
<pluginOptions>
<option>lombok:config=${project.basedir}/lombok.config</option>
</pluginOptions>
</configuration>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-lombok</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
</dependencies>
</plugin>請參閱此包含 Lombok 編譯器外掛程式與 lombok.config 使用範例的測試專案範例。
與 kapt 搭配使用
預設情況下,kapt 編譯器外掛程式會執行所有註解處理器,並停用 javac 的註解處理功能。 若要讓 Lombok 與 kapt 一起執行,請設定 kapt 以保持 javac 的註解處理器正常運作。
如果您使用 Gradle,請將此選項新增至 build.gradle(.kts) 檔案中:
kapt {
keepJavacAnnotationProcessors = true
}在 Maven 中,使用以下設定搭配 Java 編譯器啟動 Lombok:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<annotationProcessorPaths>
<annotationProcessorPath>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</annotationProcessorPath>
</annotationProcessorPaths>
</configuration>
</plugin>如果註解處理器不依賴 Lombok 產生的程式碼,Lombok 編譯器外掛程式即可與 kapt 正常運作。
查看 kapt 與 Lombok 編譯器外掛程式搭配使用的測試專案範例:
命令列編譯器
Lombok 編譯器外掛程式的 JAR 檔可在 Kotlin 編譯器的二進位發行版本中取得。您可以透過 kotlinc 的 Xplugin 選項提供其 JAR 檔案路徑來附加此外掛程式:
-Xplugin=$KOTLIN_HOME/lib/lombok-compiler-plugin.jar如果您想使用 lombok.config 檔案,請將 <PATH_TO_CONFIG_FILE> 取代為您的 lombok.config 路徑:
# 外掛程式選項格式為:"-P plugin:<plugin id>:<key>=<value>"。
# 選項可以重複。
-P plugin:org.jetbrains.kotlin.lombok:config=<PATH_TO_CONFIG_FILE>