#java #gradle #groovy #build #lombok
#java #gradle #groovy #сборка #lombok
Вопрос:
Сборки с Gradle 5.2.1 и зависимостью Lombok 1.18.6 завершаются сбоем с JDK 10. Кажется, аннотации Lombok обрабатываются ненадлежащим образом. Я продолжаю получать ошибку «не удается найти символ» в различных файлах Java в моем исходном коде. Есть мысли о том, почему это может происходить? Я обнаружил, что дефект уже создан:https://github.com/rzwitserloot/lombok/issues/1572
Я использую:
Java JDK 10
Gradle 5.2.1
Lombok 1.18.6
Спасибо.
Ответ №1:
Я нашел следующее решение этой проблемы, используя плагин для обработки аннотаций Lombok во время компиляции.
Мне пришлось выполнить следующие шаги в build.gradle:
1) Добавить id "net.ltgt.apt" version "0.15"
в раздел плагинов.
2) Добавить maven { url 'https://projectlombok.org/edge-releases' }
в раздел репозиториев.
3) Добавьте следующее в раздел «зависимости»:
compileOnly 'org.projectlombok:lombok:edge-SNAPSHOT'
apt 'org.projectlombok:lombok:edge-SNAPSHOT'
compileOnly 'org.projectlombok:lombok:1.18:6'
annotationProcessor 'org.projectlombok:lombok:1.18:6'
4) Добавьте задачу:
tasks.withType(JavaCompile) {
options.annotationProcessorPath = configurations.apt
}
Это позволяет успешно завершить сборку.
Обновление 29.03.2019: Это обходное решение также работает с Gradle 5.3, Java JDK 10
Спасибо.
Комментарии:
1. Вы уверены, что исправление или, скорее, обходной путь заключается не просто в использовании репозитория snapshot (
edge-releases
), где эта ошибка уже исправлена?2. К сожалению, это обходное решение не устраняет эту проблему. Помогло обновление IntelliJ до 2019.1.
3. Не могли бы вы опубликовать или дать ссылку на полный
bundle.gradle
файл? Я получаю ошибки сборки о том, что методapt()
не определен.4. annotationProcessor ‘org.projectlombok:lombok: 1.18:6’ Это была единственная строка, которую мне нужно было добавить.