Как настроить обработку аннотаций lombok в современной среде gradle 4.6? - PullRequest
0 голосов
/ 17 октября 2018

Это мои настройки:

  • Установлен плагин AndroidStudio Lombok
  • Включить проверку аннотаций в настройках AndroidStudio проверено
  • Оболочка Gradle использует версию 4.6
  • Я использую kotlin версии 1.2.71
  • Я использую com.android.tools.build:gradle:3.2.1
  • Я пытался "Отменить кэш / Перезапустить AndroidStudio" послекаждое изменение
  • Зависимости Lombok определяются следующим образом:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

dependencies {
    compileOnly "org.projectlombok:lombok:1.18.2"
    kapt "org.projectlombok:lombok:1.18.2"
}

При сборке приложения появляется следующая ошибка:

Annotation processors must be explicitly declared now. 
The following dependencies on the compile classpath are found to 
contain annotation processor.  
Please add them to the annotationProcessor configuration.
    - lombok-1.18.2.jar (org.projectlombok:lombok:1.18.2)

Я также попробовал эту настройку зависимостей:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

dependencies {
    compileOnly "org.projectlombok:lombok:1.18.2"
    annotationProcessor "org.projectlombok:lombok:1.18.2"
}

Но тогда я получаю ошибки "not find symbol" повсюду, потому что lombok не генерирует никаких методов получения / установки.

1 Ответ

0 голосов
/ 17 октября 2018

Процессоры аннотаций должны быть явно объявлены сейчас.Следующие зависимости от пути к классам компиляции содержат процессор аннотаций.

Пожалуйста, добавьте их в конфигурацию annotationProcessor.- lombok-1.18.2.jar (org.projectlombok:lombok:1.18.2)

Попробуйте добавить его как annotationProcessor:

annotationProcessor 'org.projectlombok:lombok:1.18.2'

Однако , прочитайте это: Возможно ли этоиспользовать Lombok с Kotlin?

Lombok работает не на вашем исходном коде, а на AST.В любом случае, это процессор аннотаций, который запускается компилятором Java во время компиляции. Компилятор Kotlin не использует эти процессоры аннотаций .Смотрите также ответ https://stackoverflow.com/a/35530223/2621917 прямо изо рта лошади.

...