annotationProcessor gradle 4.7+ конфигурация не запускает lombok - PullRequest
0 голосов
/ 25 мая 2018

Я получил следующее сообщение при работе с проектом Gradle 4.7

The following annotation processors were detected on the compile classpath: 'lombok.launch.AnnotationProcessorHider$AnnotationProcessor' and 'lombok.launch.AnnotationProcessorHider$ClaimingProcessor'. Detecting annotation processors on the compile classpath is
Deprecated and Gradle 5.0 will ignore them. Please add them to the annotation processor path instead. If you did not intend to use annotation processors, you can use the '-proc:none' compiler argument to ignore them.

при запуске

gradlew build --warning-mode=all

в проекте со следующей конфигурацией Gradle

compileOnly('org.projectlombok:lombok')
testCompileOnly('org.projectlombok:lombok')

Как следует из предупреждения, рекомендуется поместить их в конфигурации annotationProcessortestAnnotationProcessor), чтобы они были совместимы с gradle 5.0

annotationProcessor('org.projectlombok:lombok')
testAnnotationProcessor('org.projectlombok:lombok')

Однако с помощью простого теста:

@Slf4j
public class LombokTests {
    @Test
    public void lombokCompiles() {
        log.info("foobar");
    }
}

Ошибка конфигурации:

> Task :compileTestJava FAILED
D:\Users\bobjones\repos\my-new-app\src\test\java\com\example\app\LombokTests.java:10: error: cannot find symbol
@Slf4j
 ^
  symbol: class Slf4j
1 error

Я что-то упустил?

1 Ответ

0 голосов
/ 25 мая 2018

Добавить конфигурацию compileOnly / testCompileOnly

annotationProcessor('org.projectlombok:lombok')
compileOnly('org.projectlombok:lombok')
testAnnotationProcessor('org.projectlombok:lombok')
testCompileOnly('org.projectlombok:lombok')

Согласно документации , для конфигурации annotationProcessor по-прежнему требуются compileOnlytestCompileOnlyдля тестовых классов) конфигурация для функционирования.Что касается поддержки инкрементной обработки аннотаций, разработчики Lombok только что объединились в поддержку master, но по состоянию на 25 мая 2018 года не включили готовую к работе версию.

Их последняя версия 16.2.20 spanning фиксируется до 9 января 2018 и изменение Gradle было перенесено в мастерскую 15 мая 2018 Так что я подозреваю, что новая версия не будет далека от выпуска, хотя их Релиз 'Edgy' не содержит примечаний относительно этой функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...