Skip to content

在 IntelliJ IDEA 中使用 Lombok 时出现 "找不到符号" 错误,通常是由于 Lombok 插件或配置不正确导致的。以下是详细的解决方案:

1. 确保 Lombok 插件已安装并启用

  1. 打开 IDEA 设置 (File > SettingsIntelliJ IDEA > Preferences)
  2. 转到 Plugins
  3. 搜索 "Lombok"
  4. 如果未安装,点击安装并重启 IDEA
  5. 如果已安装,确保插件已启用

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. 启用注解处理

  1. 打开 IDEA 设置
  2. 转到 Build, Execution, Deployment > Compiler > Annotation Processors
  3. 确保勾选了:
    • Enable annotation processing
    • Obtain processors from project classpath

4. 配置 IDEA 的编译器选项

  1. 在设置中转到 Build, Execution, Deployment > Compiler
  2. Shared build process VM options 中添加:
    -Djps.track.ap.dependencies=false
    -Djps.track.ap.dependencies=false

5. 清理并重建项目

  1. 执行 File > Invalidate Caches / Restart...
  2. 选择 Invalidate and Restart
  3. 重启后执行 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());

常见问题排查

  1. JDK 版本问题:确保使用 Java 8 或更高版本
  2. 依赖冲突:运行 mvn dependency:tree 检查是否有多个 Lombok 版本
  3. 注解使用错误:确保正确使用了 Lombok 注解(如 @Data@Getter 等)
  4. 静态导入问题:某些注解如 @Builder 需要静态导入方法

如果问题仍然存在,可以尝试:

  1. 手动删除项目中的 .idea 目录和 *.iml 文件,然后重新导入项目

  2. 使用命令行构建验证是否是 IDEA 特有的问题:

    bash
    mvn clean compile
    mvn clean compile

    bash
    gradle compileJava
    gradle compileJava
  3. 检查 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>