NoSuchMethodError - Интеллидж и ломбок

Я получаю странную проблему в IntelliJ. Я использую Lombok (1.18.2), IntelliJ(2018.2.2) и JUnit 5 в мультимодульном проекте Gradle 4.

Мне потребовались часы, чтобы повторить это.

1) Запустите все тестовые примеры с покрытием.

2) Появится всплывающее окно

3) если я нажму "ОК" и повторно запущу тестовый блок. Это начнет терпеть неудачу с java.lang.NoSuchMethodError для методов получения и установки.

4) удаление Ломбока и генерация геттера и сеттера после этого также не имеет никакого эффекта.

Попробовал все, чтобы это исправить (включить процессор аннотаций, плагин lombok, чистую сборку), но не повезло.

РЕДАКТИРОВАТЬ 1:

Root build.gradle:

        implementation 'org.projectlombok:lombok:1.18.2'
        testImplementation('org.junit.jupiter:junit-jupiter-api:5.3.1')
        testImplementation('org.junit.jupiter:junit-jupiter-params:5.3.1')
        testRuntime('org.junit.jupiter:junit-jupiter-engine:5.3.1')
        testImplementation("org.junit.platform:junit-platform-launcher:1.3.1")
        testImplementation("org.junit.vintage:junit-vintage-engine:5.3.1")
        testImplementation "org.mockito:mockito-core:2.+"
        testImplementation('org.mockito:mockito-junit-jupiter:2.22.0')

подпроект build.gradle

        compileOnly 'org.projectlombok:lombok'
        annotationProcessor 'org.projectlombok:lombok'

1 ответ

Решение

Я решил эту проблему, внеся следующие изменения:

1: Включить обработку аннотаций в Intellij.(Файл | Настройки | Построение, Выполнение, Развертывание | Компилятор | Процессоры аннотаций)

2: выберите путь процессора и укажите на lombok-1.18.4.jar, потому что я просто хочу включить его для Lombok, а не для Mapstruct. Если этот параметр включен, он генерирует классы Mapstruct в расположении по умолчанию.

3: под файлом "Неправильный кэш и перезапуск"

4: под опцией "Перестроить проект"

Это решит это. Мне понадобилось некоторое время, чтобы заставить его работать в Intellij.

Другие вопросы по тегам