Плагин компилятора Lombok
Плагин компилятора Kotlin Lombok позволяет генерировать и использовать объявления Lombok для Java в коде Kotlin в одном смешанном модуле Java/Kotlin. Если вы вызываете такие объявления из другого модуля, то для компиляции этого модуля плагин использовать не нужно.
Плагин компилятора Lombok не может заменить Lombok, но он помогает Lombok работать в смешанных модулях Java/Kotlin. Таким образом, при использовании этого плагина вам всё равно необходимо настроить Lombok обычным образом. Узнайте больше о настройке плагина компилятора Lombok.
Поддерживаемые аннотации
Плагин поддерживает следующие аннотации:
@Getter,@Setter@Builder@NoArgsConstructor,@RequiredArgsConstructor, и@AllArgsConstructor@Data@With@Value
Мы продолжаем работу над этим плагином. Чтобы узнать подробное текущее состояние, посетите README плагина компилятора Lombok.
В настоящее время мы не планируем поддерживать аннотации @SuperBuilder и @Tolerate. Однако мы можем рассмотреть этот вопрос, если вы проголосуете за @SuperBuilder и @Tolerate в YouTrack.
Gradle
Примените плагин Gradle kotlin-plugin-lombok в файле build.gradle(.kts).
plugins {
kotlin("plugin.lombok") version "1.8.0"
id("io.freefair.lombok") version "5.3.0"
}
plugins {
id 'org.jetbrains.kotlin.plugin.lombok' version '1.8.0'
id 'io.freefair.lombok' version '5.3.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 используйте следующие настройки, чтобы запустить 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 корректно работает с kapt, если процессоры аннотаций не зависят от кода, сгенерированного Lombok.
Посмотрите примеры тестовых проектов с использованием kapt и плагина компилятора Lombok:
Компилятор командной строки
JAR-файл плагина компилятора Lombok доступен в дистрибутиве бинарников компилятора Kotlin. Вы можете подключить плагин, указав путь к его JAR-файлу, используя опцию Xplugin kotlinc:
-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>
© 2010–2023 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/lombok.html