Не могу скомпилировать проект, когда я использую Lombok под IntelliJ IDEA - PullRequest
164 голосов
/ 24 февраля 2012

Я пытаюсь использовать Lombok в своем проекте, который я разрабатываю с использованием IntelliJ IDEA 11.

Я установил сторонний плагин для IDEA и, кажется, работает нормально, потому что IDEA видит все автоматически сгенерированные методы / поля.

Итак, у меня есть класс, который использует Slf4j.Я прокомментировал это так:

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class TestClass
{
    public TestClass()
    {
        log.info("Hello!");
    }
}

Но когда я собираю плоды, компилятор моего проекта: cannot find symbol variable log.

Не могли бы вы сказать мне, что мне здесь не хватает?

Обновление: Оказалось, что процесс аннотации RequestFactory завершился неудачей.

input files: {com.zasutki.courierApp.server.TestServlet, com.mine.courierApp.server.model.DatastoreObject}

annotations: [javax.inject.Singleton, javax.inject.Inject, lombok.Getter, lombok.Setter, com.googlecode.objectify.annotation.Id, com.googlecode.objectify.annotation.OnSave]

Processor com.google.web.bindery.requestfactory.apt.RfValidator matches [lombok.Getter, com.googlecode.objectify.annotation.Id, javax.inject.Inject, lombok.Setter, com.googlecode.objectify.annotation.OnSave, javax.inject.Singleton] and returns false.

cannot find symbol variable log

Есть идеи по поводу обходных путей?

Обновление 2: Возможно, это не такчто-то, что читатели хотят услышать, но в итоге я переключился на Scala .

Ответы [ 25 ]

0 голосов
/ 16 марта 2016

У меня была такая же проблема, поэтому я оставлю это здесь для дальнейшего использования в забвении.

Когда Alt+Enter ing на @Slf4j аннотации, я ошибочно выбрал неверный импорт. Поэтому, если код не компилируется, убедитесь, что вы импортировали:

import lombok.extern.slf4j.Slf4j;

0 голосов
/ 19 октября 2016

Может случиться, что, даже если вы настроили его правильно и он виден среди библиотек и в списке зависимостей Gradle, IntelliJ все еще не имеет его в пути к классам.Или он есть, но настроен с другой областью действия (например, test вместо compile.)

Сначала убедитесь, что у вас установлен плагин и включена обработка комментариев, как указано в других ответах.

Если у вас по-прежнему есть аннотация, не распознанная, поместите курсор на нее, нажмите ALT + ENTER (или OPTION + ENTER) и посмотрите, есть ли у вас пункт меню Add library: Gragle: org.projectlombok:lombok:VERSION to class path.Если вы видите его, выберите этот, и он может решить вашу проблему.

Вы можете проверить библиотеку и ее область в: Настройки проекта / Модули / Вкладка Зависимости (найдите там lombok)

0 голосов
/ 29 марта 2016

FWIW - при настройке аннотаций компилятора, как описано выше, убедитесь, что вы также проверяете любые профили, которые вы используете, такие как "Обработчики аннотаций по умолчанию Maven".

0 голосов
/ 14 июля 2019

Убедитесь, что он добавлен правильно

dependencies {
 ...
    compileOnly 'org.projectlombok:lombok:1.18.8'
    annotationProcessor 'org.projectlombok:lombok:1.18.8'

}
0 голосов
/ 29 апреля 2017

Чтобы это заработало, просто установите «Плагин Lombok» для IntelliJ.Вам не нужно ничего делать с включением «Процессоров аннотаций», как предлагали некоторые другие комментаторы.(Я протестировал это с последней версией IntelliJ IDEA, в настоящее время 2017.1.2).Для установки плагина перейдите в «Настройки», затем «Плагины», затем нажмите кнопку «Обзор репозиториев», затем найдите «Lombok» и установите плагин Lombok.Вам будет предложено перезапустить IntelliJ.После этого вы сможете компилировать из IntelliJ и больше не будете получать проверки ошибок.

...