Spec-Zone.ru › Kotlin 1.7

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

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

Плагин компилятора Kotlin Lombok позволяет генерировать и использовать объявления Lombok для Java кодом Kotlin в одном смешанном Java/Kotlin модуле. Если вы вызываете такие объявления из другого модуля, вам не нужно использовать этот плагин для компиляции этого модуля.

Плагин компилятора Lombok не может заменить Lombok, но он помогает Lombok работать в смешанных Java/Kotlin модулях. Таким образом, вам всё равно нужно настроить Lombok как обычно, когда используете этот плагин. Узнайте больше о настройке плагина с конфигурационным файлом Lombok.

Поддерживаемые аннотации

Плагин поддерживает следующие аннотации:

  • @Getter, @Setter

  • @NoArgsConstructor, @RequiredArgsConstructor, и @AllArgsConstructor

  • @Data

  • @With

  • @Value

Мы продолжаем работу над этим плагином. Чтобы узнать подробное текущее состояние, посетите страницу README плагина компилятора Lombok.

В настоящее время у нас нет планов по поддержке аннотации @Builder. Однако, мы можем рассмотреть этот вопрос, если вы проголосуете за @Builder в YouTrack.

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

Gradle

Примените плагин Gradle kotlin-plugin-lombok в файле build.gradle(.kts):

plugins {
    kotlin("plugin.lombok") version "1.7.20"
    id("io.freefair.lombok") version "5.3.0"
}
plugins {
    id 'org.jetbrains.kotlin.plugin.lombok' version '1.7.20'
    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

Последнее изменение: 19 сентября 2022 г.
Использование kapt API Kotlin Symbol Processing

© 2010–2022 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