Reputation: 537
I'm using Intellij and trying to apply lombok to the project. But it keeps saying "cannot find symbol". Here's a quick sample of my code.
Class
import lombok.*;
@Data
public class Product {
private String name;
private Integer price;
public Product(String name, Integer price){
this.name = name;
this.price = price;
}
}
Main
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionMain {
public static void main(String[] args) {
Collection<Product> products = new ArrayList<>();
Product door = new Product("DOOR",90);
Product bed = new Product("BED",60);
Product ipad = new Product("iPad",15);
products.add(door);
products.add(bed);
products.add(ipad);
final Iterator<Product> productIterator = products.iterator();
while(productIterator.hasNext()){
Product product = productIterator.next();
System.out.println(product.getPrice());
}
}
}
and the error says
CollectionMain.java:23: error: cannot find symbol System.out.println(product.getPrice()); ^ symbol: method getPrice() location: variable product of type Product
I have enabled the annotation processor
plugin
Upvotes: 18
Views: 22877
Reputation: 1
Alternatively you can run your Project using Jar file
Note : This way problem is not resolved completely but you can build and run your project.
Upvotes: -2
Reputation: 1174
Working solution is to add both compileOnly
and annotationProcessor
with lombok. in build.gradle
compileOnly 'org.projectlombok:lombok:1.18.34'
annotationProcessor 'org.projectlombok:lombok:1.18.34'
Upvotes: 0
Reputation: 107
If you did the correct configuration and IDE setting is correct(Enable annotation procession)
and Other settings are correct then you can add following in to the pom.
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
..........................
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
Upvotes: 3
Reputation: 103
For me I had to use the Lombok Gradle plugin as stated in the Lombok installation guide for Gradle:
plugins {
id 'java'
id 'io.freefair.lombok' version '8.3'
}
Upvotes: 0
Reputation: 1
I faced the same error when tried to build my project (gradle). I used jdk-15 on my project, but then installed jdk-17 on my computer (even without changing sdk in the project) and the problem happened. To fix the issue I uninstalled jdk-17 from the computer (deleting sdk on project is not enough)
Upvotes: 0
Reputation: 1507
I had the same issue. But my solution was bit different.
My project is on java 8 but IDEA SDK was set to java 17. Once I changed it to java 8 issue was solved.
Upvotes: 3
Reputation: 1
For some reason the Maven repository only provides you with the 'compileOnly' dependency for the Gradle builder. However, if you look in the Lombok documentation you will find that you also need to use the 'annotationProcessor'.
https://projectlombok.org/setup/gradle
Upvotes: 0
Reputation: 537
I didn't put
annotationProcessor 'org.projectlombok:lombok:1.18.12'
in my build.gradle
problem solved.
Upvotes: 24