Spec-Zone.ru › Kotlin 1.8

Плагин компилятора Lombok

Плагин компилятора Lombok — экспериментальный. Он может быть удалён или изменён в любое время. Используйте его только для оценочных целей. Мы будем благодарны за ваши отзывы в YouTrack.

Плагин компилятора 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.

Компилятор Kotlin игнорирует аннотации Lombok, если вы используете их в коде Kotlin.

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:

  • Использование Gradle.

  • Использование Maven

Компилятор командной строки

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>
Последнее изменение: 10 января 2023
Использование kapt API Kotlin Symbol Processing

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API