IntelliJ IDEA cannot see Lombok generated code

JavaIntellij IdeaJunit4LombokIntellij Lombok-Plugin

Java Problem Overview


I have a Gradle-based project that uses lombok. I have imported this project into IntelliJ IDEA 14.1 (using the Import External Model import method). I can run the JUnit4 unit tests without problem in Gradle, but IntelliJ seems to have a problem seeing the Lombok generated Getters. This is preventing me from running the tests in IDEA.

To make sure it wasn't a set up issue, I created a [Very simple project][1] and confirmed that the same issue occurs in the simple test project.

My versions: Gradle: gradle-2.3-all via Gradle wrapper
Intellij IDEA: IU-141.713
Lombok Plugin: 0.9.2

What am I missing here?

Update By cannot see I don't mean physically invisible. I mean this:

/home/meeee/workspace/junit-lombok-idea/lib/src/main/java/com/example/jumbokea/Main.java
Error:(10, 11) java: cannot find symbol
  symbol:   method setIntField(int)
  location: variable sc of type com.example.jumbokea.SomeClass
Error:(12, 41) java: cannot find symbol
  symbol:   method getIntField()
  location: variable sc of type com.example.jumbokea.SomeClass
Error:(14, 33) java: constructor AnotherClass in class com.example.jumbokea.AnotherClass cannot be applied to given types;
  required: no arguments
  found: float,com.example.jumbokea.SomeClass
  reason: actual and formal argument lists differ in length
Error:(16, 46) java: cannot find symbol
  symbol:   method getSomeFloat()
  location: variable ac of type com.example.jumbokea.AnotherClass
Error:(17, 43) java: cannot find symbol
  symbol:   method getSomeClass()
  location: variable ac of type com.example.jumbokea.AnotherClass

The decompiled classes show the getters and setters, but I'm getting these errors when I get IntelliJ to run the 'app' or the Unit tests.

![Getters and setters are there, but not there???][2]

[1]: https://github.com/copolii/jumbokea "Github" [2]: http://i.stack.imgur.com/i8C8p.png

Java Solutions


Solution 1 - Java

You need to enable the annotation preprocessor. See documentation here.

Additionally you should install the lombok plugin if not done already

Solution 2 - Java

I managed to solve this issue by doing the following:

  • Install the IDEA Lombok plugin
  • Enable Annotation Processing see documentation
  • Install the Latest Maven on your system and configure IntelliJ to use it (as opposed to the bundled one) see documentation

Solution 3 - Java

It can be seen in the build folder.

enter image description here

Solution 4 - Java

In my case the issue occurred after updating IntelliJ via Toolbox.

"Enable annotation processing" flag was switched off (despite importing the settings from previous IntelliJ version), so I switched it on. This did not resolve the issue after restart, clean, build.

However, resintalling the lombok plugin helped!

EDIT: Seems that it was the problem with compatibility of lombok plugin with IntelliJ 2018.1, plugin upgrade to 0.17 is required for IntelliJ users.

Lombok plugin changelog excerpt: > Lombok support plugin updated to v0.17: > - Fixed (#465): Fix plugin compatibility with IntelliJ 2018.1

Solution 5 - Java

As mentioned in the other answer, please, install the Lombok plugin and enable the annotation processor. Press double SHIFT in the IntelliJ and type Enable annotation processing in the search box. Afterward, tick the box and restart the IDE.

enter image description here

enter image description here

Solution 6 - Java

After enabled the annotation processor and installed lombok plugin, if still got "can't find symbol error" on lombok generated method, try check the gradle configuration, which is in

Preference -> Build,Execution, Deployment -> Gradle,

if you are using local gradle distribution, change to use default gradle wrapper.

I got this error when my project's gradle wrapper is 4.10.2 but my local gradle version is 5.1.1, and I solve it after I change it to use default gradle wrapper.

Solution 7 - Java

Even after adding annotation processor and having lombok dependency added might not solve the problem . This is because the class files related to model needs to be in target folder

Run clean install to generate the class files for model with lombok code generated changes.

Solution 8 - Java

Add below dependency in pom.xml along with other solutions mentioned in other answers.

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

Solution 9 - Java

In case of Lombok, IntelliJ allows you to search for usages of variable, which will also include getters and setters. Just click variable name and option/alt + f7.

This works in Intellij 2016 and Lombok plugin 0.13.16. I am not sure about older versions.

Solution 10 - Java

Try click on lombok import, and put alt+enter, then short list will appear, choose add maven dependency, then on the right down corner on the screen will appear icon that maven should be enabledd, click on enable automatically. For me it worked.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestioncopoliiView Question on Stackoverflow
Solution 1 - Javamh-devView Answer on Stackoverflow
Solution 2 - JavaSamantha CataniaView Answer on Stackoverflow
Solution 3 - JavaJiHong JangView Answer on Stackoverflow
Solution 4 - JavalogrussoView Answer on Stackoverflow
Solution 5 - JavaArefeView Answer on Stackoverflow
Solution 6 - JavaLindsey ZhangView Answer on Stackoverflow
Solution 7 - JavaRishikesh FanseView Answer on Stackoverflow
Solution 8 - JavaTrueIndian 31View Answer on Stackoverflow
Solution 9 - JavawstView Answer on Stackoverflow
Solution 10 - JavaJan AndrzejewskiView Answer on Stackoverflow