Spec-Zone.ru › Kotlin 1.6

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

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

Плагин компилятора Lombok для Kotlin позволяет генерировать и использовать объявления 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.6.20"
    id("io.freefair.lombok") version "5.3.0"
}
plugins {
    id 'org.jetbrains.kotlin.plugin.lombok' version '1.6.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

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

© 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