Reputation: 1371
I have tried using Lombok on Intellij IDEA 13 Ultimate.
However. I get the famous error "cannot find symbol" for all the methods that should have been available when I am using specific annotations for example the once I use as annotations are @Builder
, @AllArgsConstructor
and @Data
.
I have already set my compiler to enable annotation processing and I have looked deeply into it, but with no solution of how to solve it.
Any advice or tips would be nice.
Upvotes: 22
Views: 48743
Reputation: 61
I have the same problem. Using maven, after I add at to my pom.xml annotationProcessor nothing changed. Also I'm installed Lombok plugin at Intelij IDEA.
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
Upvotes: 6
Reputation: 112
Same problem here, hundreds of Lombok errors in @Builder
tags and getting this compile error cannot find symbol
.
The solution for me was to check all the errors and see that one of them was different import requires canonical name for
caused by the @FieldNameConstants
annotation conflicting with other classes.
Conclusion: Lombok sucks!
Upvotes: 0
Reputation: 1
If you use @UtilityClass, the reason can be:
Due to a peculiar way javac processes static imports, trying to do a non-star static import of any of the members of a @UtilityClass
won't work. Either use a star static import: import static TypeMarkedWithUtilityClass.*;
or don't statically import any of the members.
Upvotes: 0
Reputation: 46
The aforementioned solutions work perfectly, although there's another instance where Lombok annotation processing can fail:
In Gradle or Maven you can pass an argument/flag to prevent annotation processing:
-proc:none
Hope this helps someone.
Reference: https://github.com/projectlombok/lombok/issues/1449
Upvotes: 0
Reputation: 193
I solved this in my Gradle project by including the Lombok plugin. No dependencies or annotationProcessor needed (nor did those work for me).
For example in your build.gradle.kts
:
plugins {
id("io.freefair.lombok") version "6.5.1"
}
https://plugins.gradle.org/plugin/io.freefair.lombok
Upvotes: 0
Reputation: 21
Tried with the @Mike's solution above, and it works. For your information, even though I enabled the Annotation Processors , but it seems like not working. After I added the annotationProcessor 'org.projectlombok:lombok:1.18.22' it was built successfully.
Upvotes: 1
Reputation: 1
If you use intellij Idea go to setting and add Lombok plugin to your intellij idea
Upvotes: 0
Reputation: 1049
In my case non of methods works. But I found solution for my case. I needed to add to my Gradle dependencies list of
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.22'
}
one more line
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.22'
annotationProcessor 'org.projectlombok:lombok:1.18.22'
}
With such combination you even don't need enabling Annotation Processors from @Vegard answer.
Upvotes: 8
Reputation: 415
In my case apart from enabling Annotation Processing and installing Lombok Plugin I had to rebuild project by Build -> Rebuild Project
Upvotes: 3
Reputation: 1942
Kind of old question here, but I came across the same problem today. I had to do two things to make it work:
Settings -> Compiler -> Annotation
Processors
Compiler -> Java Compiler
you of course also need the Lombok plugin.
Upvotes: 12
Reputation: 89
I was having a similar issue, but resolved it by upgrading to IDEA 15.0.2 and Lombok plugin 0.9.6.14. I had to restart IDEA several times before all of the getters/setters generated by Lombok were resolved.
I also found this related answer, but it didn't seem to help my problem. It may help you if upgrading does not.
Upvotes: 1