Lombok annotations do not compile under Intellij idea
JavaIntellij IdeaLombokJava Problem Overview
- I've installed the plugin for intellij idea(lombok-plugin-0.8.6-13).
- Added lombok.jar into classpath
- I can find getters and setters in the window of structure. And Intellij shows no error.
- Setting - Lombok plugin - Verified Intellij configuration for lombok, it shows that "configuration of IntelliJ seems to be ok".
It seems everything is OK. But when I compile a test, errors come: can not find the methods getXXX and setXXX.
I opened the .class file with IntelliJ and find out that there is no setXXX and getXXX methods.
Could somebody tell me why?
- plugin:lombok-plugin-0.8.6-13
- lombok.jar:1.14.0
- idea:13.0.2 for linux
- jdk:1.7.0_21
Java Solutions
Solution 1 - Java
In order to solve the problem set:
- Preferences (Ctrl + Alt + S)
- Build, Execution, Deployment
- Compiler
- Annotation Processors
- Enable annotation processing
- Annotation Processors
- Compiler
- Build, Execution, Deployment
Make sure you have the Lombok plugin for IntelliJ installed!
- Preferences
->
Plugins - Search for "Lombok Plugin"
- Click Browse repositories...
- Choose Lombok Plugin
- Install
- Restart IntelliJ
Solution 2 - Java
If you're using Eclipse compiler with lombok, this setup finally worked for me:
- IDEA 14.1
- Lombok plugin
- ... / Compiler / Java Compiler > Use Compiler: Eclipse
- ... / Compiler / Annotation Processors > Enable annotation processing: checked (default configuration)
- ... / Compiler > Additional build process VM options:(Shared build process VM options) -javaagent:lombok.jar
The most important part is the last one, mine looks like following:
Plugin is needed for IntelliJ editor to recognize getters and setters, javaagent is needed for eclipse compiler to compile with lombok.
Solution 3 - Java
If you're using Intellij on Mac, this setup finally worked for me.
Installations: Intellij
- Go to Preferences, search for Plugins.
- Type "Lombok" in the plugin search box. Lombok is a non-bundled plugin, so it won't show at first.
- Click "Browse" to search for non-bundled plugins
- The "Lombok Plugin" should show up. Select it.
- Click the green "Install" button.
- Click the "Restart Intellij IDEA" button.
Settings:
- Enable Annotation processor
- Go to Preferences -> Build, Execution,Deployment -->Preferences -> Compiler -> Annotation Processors
- File -> Other Settings -> Default Settings -> Compiler -> Annotation Processors
- Check if Lombok plugin is enabled
- IntelliJ IDEA-> Preferences -> Other Settings -> Lombok plugin -> Enable Lombok
- Add Lombok jar in Global Libraries and project dependencies.
- File --> Project Structure --> Global libraries (Add lombok.jar)
-
File --> Project Structure --> Project Settings --> Modules --> Dependencies Tab = check lombok
-
Restart Intellij
Solution 4 - Java
I followed this procedure to get ride of a similar/same error.
mvn idea:clean
mvn idea:idea
After that I could build both from the IDE intellij and from command line.
Solution 5 - Java
For me, both lombok plugin and annotation processing enable needed, no else. No need to Use Eclipse and additional -javaagent:lombok.jar options.
- Idea 14.1.3, build 141.1010
- Lombok plugin[Preference->plugins->browse repositories->search 'lombok'->install and restart idea.
- Preference ->search 'annotation'->enter annotation processor ->enable annotation processing.
Solution 6 - Java
After spending far too long troubleshooting this, I found a simple workaround which ensures IntelliJ processes Lombok annotations correctly during builds.
The gradle-lombok plugin is not necessary for this workaround. Your build.gradle
only requires the following:
dependencies {
compileOnly("org.projectlombok:lombok:1.16.18")
}
The workaround is to turn on the following IntelliJ setting:
- Open IntelliJ preferences/settings.
- Navigate to
Build, Execute, Deployment > Build Tools > Gradle > Runner
- Check the box labeled
Delegate IDE build/run actions to gradle
Benefits of this workaround compared to other solutions on this page:
- No annotation processing necessary!
- Able to use the Java compiler of your choice (no Eclipse compiler necessary)
- No use of buggy gradle-lombok plugin (although perhaps someone else can solve this)
- No VM options necessary
- No hard-coded paths to lombok jar
One downside is that IntelliJ will no longer use its own test runner. Instead, tests are always run through Gradle.
Solution 7 - Java
IDEA 2016.1:
-
Install lombok plugin
-
Settings -> Compiler -> Annotation Processors -> Enable annotation processing: checked (default configuration)
-
Settings -> Compiler -> Annotation Processors -> Annotation Processors add "lombok.launch.AnnotationProcessorHider$AnnotationProcessor"
-
Also if you are using maven add to maven-compiler-plugin configuration -> annotationProcessors -> annotationProcessor: lombok.launch.AnnotationProcessorHider$AnnotationProcessor
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven.plugin.compiler.version}</version> <configuration> <compilerVersion>${java.version}</compilerVersion> <source>${java.version}</source> <target>${java.version}</target> <annotationProcessors> <annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor</annotationProcessor> </annotationProcessors> </configuration> </plugin>
Solution 8 - Java
Make sure these two requirements are satisfied:
-
Enable annotation processing,
Preferences > Build, Execution, Deployment > Compiler > Annotation Processors > Enable annotation processing
-
Lombok plugin is installed and enabled for your project.
Solution 9 - Java
None of the advanced answers to this question resolved the problem for me.
I managed to solve the problem by adding a dependencie to lombok in the pom.xml file, i.e. :
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.12</version>
</dependency>
I am using IntelliJ 2016.3.14 with maven-3.3.9
Hope my answer will be helpful for you
Solution 10 - Java
On Itellij 15 CE, it's enough to just install Lombok Plugin (no additional configuration required).
Solution 11 - Java
I am unable to get this working with the javac compiler, and I get the same error.
> Error:(9, 14) java: package lombok does not exist
I have enabled annotation processor, and have also tried rebuilding the project, invalidate cache/restart. Doesn't help.
I did however get it to work partially with eclipse compiler. I say partial because although the build passes successfully, the editor still complains about "Cannot resolve symbol".
Idea - 15.04 community edition Lombok - 1.16.6 Lombok plugin (https://github.com/mplushnikov/lombok-intellij-plugin) - 0.9.8 JDK - 1.8.0_51
Update: Ok, I finally got this working. Mine was a gradle project, and lombok was configured as a custom "provided" configuration. Worked fine after adding this in build.gradle
idea {
module {
scopes.PROVIDED.plus += [configurations.provided]
}
}
So, 3 steps
- Install Lombok plugin from File->Settings->Plugins
- Enable Annotation Processor (javac compiler works too)
- Ensure that you have build.gradle or pom.xml updated for idea if you are adding lombok as a custom config.