Lombokコンパイラープラグイン
Lombokコンパイラープラグインは試験的です。 いつでも削除または変更される可能性があります。評価目的でのみ使用してください。 YouTrackでフィードバックをお待ちしております。
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 compiler plugin's READMEをご覧ください。
現在、@Tolerate
アノテーションをサポートする予定はありません。ただし、YouTrackの@Tolerate issueに投票していただければ、検討することができます。
Kotlinコンパイラーは、KotlinコードでLombokアノテーションを使用しても無視します。
Gradle
build.gradle(.kts)
ファイルでkotlin-plugin-lombok
Gradleプラグインを適用します。
- Kotlin
- Groovy
plugins {
kotlin("plugin.lombok") version "2.1.20"
id("io.freefair.lombok") version "8.13"
}
plugins {
id 'org.jetbrains.kotlin.plugin.lombok' version '2.1.20'
id 'io.freefair.lombok' version '8.13'
}
Lombokコンパイラープラグインの使用例を含むこのテストプロジェクトをご覧ください。
Lombok構成ファイルの使用
Lombok構成ファイル lombok.config
を使用する場合は、プラグインがファイルを見つけられるように、ファイルのパスを設定する必要があります。
パスはモジュールのディレクトリに対する相対パスである必要があります。
たとえば、次のコードをbuild.gradle(.kts)
ファイルに追加します。
- Kotlin
- Groovy
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と一緒に実行するには、javacのアノテーションプロセッサーが動作するようにkaptを設定します。
Gradleを使用する場合は、オプションをbuild.gradle(.kts)
ファイルに追加します。
kapt {
keepJavacAnnotationProcessors = true
}
Mavenでは、次の設定を使用してLombokをJavaのコンパイラーで起動します。
<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コンパイラーのバイナリディストリビューションで利用できます。Xplugin
kotlincオプションを使用して、JARファイルへのパスを指定することで、プラグインをアタッチできます。
-Xplugin=$KOTLIN_HOME/lib/lombok-compiler-plugin.jar
lombok.config
ファイルを使用する場合は、<PATH_TO_CONFIG_FILE>
をlombok.config
へのパスに置き換えます。
# The plugin option format is: "-P plugin:<plugin id>:<key>=<value>".
# Options can be repeated.
-P plugin:org.jetbrains.kotlin.lombok:config=<PATH_TO_CONFIG_FILE>