Spec-Zone.ru › Kotlin 1.9

Плагин компилятора 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.9.0"
    id("io.freefair.lombok") version "8.1.0"
}
plugins {
    id 'org.jetbrains.kotlin.plugin.lombok' version '1.9.0'
    id 'io.freefair.lombok' version '8.1.0'
}

См. этот тестовый проект с примерами использования плагина компилятора Lombok.

Использование файла конфигурации 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 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-файлу, используя опцию kotlinc Xplugin:

-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>
Последнее изменение: 11 июля 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