在 IntelliJ IDEA 中使用 Lombok 时出现 "找不到符号" 错误,通常是由于 Lombok 插件或配置不正确导致的。以下是详细的解决方案:
1. 确保 Lombok 插件已安装并启用
- 打开 IDEA 设置 (
File > Settings
或IntelliJ IDEA > Preferences
) - 转到
Plugins
- 搜索 "Lombok"
- 如果未安装,点击安装并重启 IDEA
- 如果已安装,确保插件已启用
2. 正确配置项目依赖
对于 Maven 项目 (pom.xml
):
xml
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version> <!-- 使用最新版本 -->
<scope>provided</scope>
</dependency>
</dependencies>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version> <!-- 使用最新版本 -->
<scope>provided</scope>
</dependency>
</dependencies>
对于 Gradle 项目 (build.gradle
):
groovy
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.30'
annotationProcessor 'org.projectlombok:lombok:1.18.30'
}
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.30'
annotationProcessor 'org.projectlombok:lombok:1.18.30'
}
3. 启用注解处理
- 打开 IDEA 设置
- 转到
Build, Execution, Deployment > Compiler > Annotation Processors
- 确保勾选了:
Enable annotation processing
Obtain processors from project classpath
4. 配置 IDEA 的编译器选项
- 在设置中转到
Build, Execution, Deployment > Compiler
- 在
Shared build process VM options
中添加:-Djps.track.ap.dependencies=false
-Djps.track.ap.dependencies=false
5. 清理并重建项目
- 执行
File > Invalidate Caches / Restart...
- 选择
Invalidate and Restart
- 重启后执行
Build > Rebuild Project
6. 验证 Lombok 是否工作
创建一个简单的测试类:
java
import lombok.Data;
@Data
public class Test {
private String name;
private int age;
}
import lombok.Data;
@Data
public class Test {
private String name;
private int age;
}
尝试使用自动生成的 getter/setter:
java
Test test = new Test();
test.setName("Example");
System.out.println(test.getName());
Test test = new Test();
test.setName("Example");
System.out.println(test.getName());
常见问题排查
- JDK 版本问题:确保使用 Java 8 或更高版本
- 依赖冲突:运行
mvn dependency:tree
检查是否有多个 Lombok 版本 - 注解使用错误:确保正确使用了 Lombok 注解(如
@Data
、@Getter
等) - 静态导入问题:某些注解如
@Builder
需要静态导入方法
如果问题仍然存在,可以尝试:
手动删除项目中的
.idea
目录和*.iml
文件,然后重新导入项目使用命令行构建验证是否是 IDEA 特有的问题:
bashmvn clean compile
mvn clean compile
或
bashgradle compileJava
gradle compileJava
检查 Lombok 版本是否与 IDEA 版本兼容,必要时升级 Lombok 或 IDEA
我是用的是Springboot3,父子模块的项目,采用jdk24,配置了lombok插件,引入了pom包,但是还是编译报错:找不到符号 在项目的pom中引入编译:
<properties>
<java.version>24</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring-boot.version>3.5.3</spring-boot.version>
<langchain4j.version>1.1.0</langchain4j.version>
<knife4j.version>4.5.0</knife4j.version>
<maven.compiler.version>3.11.0</maven.compiler.version>
<lombok.version>1.18.38</lombok.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.version}</version> <!-- 使用稳定版本 -->
<configuration>
<release>24</release>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<java.version>24</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring-boot.version>3.5.3</spring-boot.version>
<langchain4j.version>1.1.0</langchain4j.version>
<knife4j.version>4.5.0</knife4j.version>
<maven.compiler.version>3.11.0</maven.compiler.version>
<lombok.version>1.18.38</lombok.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.version}</version> <!-- 使用稳定版本 -->
<configuration>
<release>24</release>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>