- 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
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
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: -javaagent:lombok.jar
The most important part is the last one, mine looks like following:
Plugin is needed for IntelliJ editor to recognise getters and setters, javaagent is needed for eclipse compiler to compile with lombok.
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.
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
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>
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.
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.
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
On Itellij 15 CE, it's enough to just install Lombok Plugin (no additional configuration required).
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.
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.
来源:https://stackoverflow.com/questions/24006937/lombok-annotations-do-not-compile-under-intellij-idea