Не удается скомпилировать проект, когда я использую Ломбок под IntelliJ IDEA



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



Я установил 3-й плагин для 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


есть идеи решения ?



Update2: возможно, это не то, что читатели хотят услышать, но я в конечном итоге переход к Скала.

1440   21  

21 ответов:

я исправил это в идее 12, установив флажок Enable annotation processing in:

Настройки -> Компилятор -> Процессоры Аннотации

для идеи 2016.2:

настройки... > Сборка, Выполнение, Развертывание > Компилятор > Обработчики Аннотаций

включение обработки аннотаций заставит его работать

но если вы находитесь на Mac, убедитесь, что вы включили обработку аннотаций (установите флажок) от как места доступен.

1.) Intellij Idea -> Preferences -> Compiler - > Annotation Processors

2.) Файл - > Другие Настройки - > Настройки По Умолчанию - > Компилятор - > Аннотации Процессоров

изображение представление решения этой проблемы.

сначала включите обработчики аннотаций и попробуйте. Это может или не может работать. enter image description here

после этого вы можете установить плагин lombok из intellij, (после установки Intellij перезапустится, чтобы включить плагин, поэтому убедитесь, что вы сохранили свою работу.(Intellij сохраняет все изменения перед перезапуском, просто чтобы быть в безопасности.)) скриншот ниже:

enter image description here

Как отмечает здесь, цитата:"Вы должны активировать опцию внешнего компилятора и включить процессоры аннотаций или отключить внешний компилятор и отключить все компиляторы аннотаций для работы с Ломбоком". Это исправило мою проблему. Обратите внимание, что я добавил плагин Scala до получения этой ошибки, поэтому я подозреваю, что плагин изменил некоторые из вышеперечисленных настроек.

есть плагин для intellij. смотрите здесь: https://projectlombok.org/download.html

Если вы проверили оба этих шага следующим образом

  1. включить аннотации : это проверка, выполненная в IntelliJ предпочтения.
  2. импорт Ломбок в IntelliJ classPath (Настройки -> Плагины)

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

вы можете проверить компилятор в настройках -> сборка, выполнение, развертывание - > компилятор -> компилятор Java.

измените компилятор Use на Javac (если это Eclipse). Это то, что сработало для меня.

есть ли у вас Ломбок как зависимость вашего проекта? Ломбок.jar должен быть на пути к классам во время компиляции проекта, который использует любую из Lombok-аннотаций.

1、установить плагин Ломбок для IDEA

Intellij Idea - > Preferences - > Plugins - > type in lombok - > Search in Repositories - > install - > restart IDEA

2, конфигурации Ломбок плагин

включение обработки аннотаций заставит его работать

но если вы находитесь на Mac, убедитесь, что вы включить обработку аннотаций в следующих двух местах:

Intellij Idea - > Preferences - > Build, Execution, Развертывание - > компилятор - > обработчики аннотаций, установите флажок "Включить обработку аннотаций". Файл - > другие настройки - > настройки по умолчанию - > сборка, выполнение, развертывание - > компилятор - > обработчики аннотаций, установите флажок "Включить обработку аннотаций".

для тех из вас, кто все еще возникают проблемы:

в дополнение к вышеуказанным шагам включения процессоров аннотаций и установки плагина IntelliJ Lombok, мне также пришлось построить -> перестроить проект.

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

Я был на Mac

Это моя идея IntelliJ и версия для Mac-IntelliJ IDEA 2017.1.5 Build #IU-171.4694.70 --- Mac OS X 10.12

в дополнение к включению обработки аннотаций (установите флажок) в этих 2 местах.

1.) Intellij IDEA -> Preferences -> Compiler - > Annotation Processors

.

2.) Файл - > Другие Настройки - > Настройки По Умолчанию - > Компилятор - > Аннотация Процессоры

мне пришлось установить плагин Lombok тоже, чтобы заставить его работать.

3.) Intellij IDEA - > Настройки - > Плагины - > обзор репозиториев - > Поиск "Ломбок"-> установить плагин - > применить и перезапустить IDEA

У меня была аналогичная проблема при построении с JDK8, установите проект обратно в JDK7, и он работал нормально. Может быть более старая версия Lombok, которая не будет компилироваться под JDK8.

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

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

import lombok.extern.slf4j.Slf4j;

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

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

во-первых, убедитесь, что у вас установлен плагин и включена обработка аннотаций, как указано в других ответах.

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

вы можете проверить библиотеку, и это область действия: Вкладка настройки проекта / модули / зависимости (поиск Ломбок там)

Если вы пробовали все решения, представленные здесь, и все еще не можете скомпилировать источники, также посмотрите здесь:статический импорт класса builder прерывает генерацию байт-кода в Maven - посмотрите на свои источники, если он имеет такой статический импорт. Это влияет на плагин maven, поэтому компиляция не будет работать на других системах сборки за пределами IntelliJ IDEA.

в моем случае у меня были все вещи, упомянутые ниже, и он все еще не работал.

  1. у меня был плагин Ломбок установлен правильно
  2. обработчики аннотаций, также проверено.
  3. мой компилятор Java был установлен в JAVAC

чтобы исправить мои проблемы, я должен был

  1. обновить Ломбок до последней версии (v0.15) по состоянию на 7 октября 2017 года.
  2. Перезапустить IntelliJ.
  3. перестроить проект.

посмотреть скриншоты как обновить и перестроить проект.

Как обновить Ломбок

как перестроить проект

это не сработало для меня с любым из вышеперечисленных решений. Я добавил <scope>provided</scope> к зависимости в pom.xml и это сработало.

<dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.20</version>
        <scope>provided</scope>
    </dependency>

вы можете исправить cannot find symbol variable log при использовании lombok в IntelliJ IDEA 2017.1.3, выполнив это:

Настройки IntelliJ > Сборка, Выполнение, Развертывание > Аннотация Процессоры > [проверка] включить обработку аннотаций > применить

установите плагин ниже и перезапустите IDE, чтобы устранить ошибки:

File -> Settings -> Plugins-> Browse Repositories -> Lombok Plugin

включить обработчик аннотаций:

File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors
File -> Other Settings -> Default Settings -> Compiler -> Annotation Processors

Faced similar problem. Below fixed worked for me.
скачать (отсюда [https://projectlombok.org/download][1]) и добавить банку в структуре проекта.

Шаги: Файл - > Структура Prpject - >Глобальные Библиотеки

Comments

    Ничего не найдено.