Lombokコンパイラープラグイン
Lombokコンパイラープラグインは実験的なものです。 いつでも変更または削除される可能性があります。評価目的でのみ使用してください。 YouTrackでのフィードバックをお待ちしております。
Kotlin Lombokコンパイラープラグインを使用すると、同じJava/Kotlin混在モジュール内でKotlinコードによるJavaのLombok宣言の生成と使用が可能になります。 別のモジュールからそのような宣言を呼び出す場合、そのモジュールのコンパイルにはこのプラグインを使用する必要はありません。
LombokコンパイラープラグインはLombokを置き換えるものではありませんが、Java/Kotlin混在モジュールでLombokが動作するのを助けます。 したがって、このプラグインを使用する場合でも、通常通りLombokを設定する必要があります。 Lombokコンパイラープラグインの設定方法について詳しく学びましょう。
サポートされている注釈
プラグインは以下の注釈をサポートしています。
@Getter
,@Setter
@Builder
,@SuperBuilder
@NoArgsConstructor
,@RequiredArgsConstructor
, および@AllArgsConstructor
@Data
@With
@Value
私たちはこのプラグインの開発を継続しています。詳細な現状については、LombokコンパイラープラグインのREADMEを参照してください。
現在、@Tolerate
注釈をサポートする予定はありません。ただし、YouTrackの@Tolerate issueに投票していただければ、検討することができます。
Kotlinコンパイラーは、KotlinコードでLombok注釈を使用した場合、それらを無視します。
Gradle
kotlin-plugin-lombok
Gradleプラグインをbuild.gradle(.kts)
ファイルに適用します。
plugins {
kotlin("plugin.lombok") version "2.2.10"
id("io.freefair.lombok") version "8.13.1"
}
plugins {
id 'org.jetbrains.kotlin.plugin.lombok' version '2.2.10'
id 'io.freefair.lombok' version '8.13.1'
}
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によるアノテーション処理を無効にします。 kaptと一緒にLombokを実行するには、javacのアノテーションプロセッサーが動作し続けるようにkaptを設定します。
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コンパイラーのバイナリ配布に含まれています。 Xplugin
kotlincオプションを使用して、JARファイルへのパスを指定することでプラグインをアタッチできます。
-Xplugin=$KOTLIN_HOME/lib/lombok-compiler-plugin.jar
lombok.config
ファイルを使用したい場合は、<PATH_TO_CONFIG_FILE>
をlombok.config
へのパスに置き換えてください。
# プラグインオプションの形式は「-P plugin:<plugin ID>:<キー>=<値>」です。
# オプションは複数指定できます。
-P plugin:org.jetbrains.kotlin.lombok:config=<PATH_TO_CONFIG_FILE>