¿@Builder de Lombok no funciona? Acá la solución que me salvó
今天在使用Spring Boot和Lombok的Java项目中遇到了一个令人困扰的错误。代码看起来一切正常,但编译时出现以下错误信息:
java: no se puede encontrar el símbolo builderClass
问题排查
经过多次代码检查后,发现问题并非出在Lombok的使用方式上,而是项目pom.xml文件的配置问题。
:magnifying_glass_tilted_left: 问题原因
-
maven-compiler-plugin
配置不正确 -
spring-boot-maven-plugin
中意外排除了Lombok依赖
这导致编译时无法识别@builder
等注解。
<!-- 错误配置示例 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<!-- 意外排除了lombok -->
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
:check_mark_button: 解决方案
修正maven-compiler-plugin
配置,添加正确的Java版本并配置annotationProcessorPaths
:
<!-- 解决方案 -->
<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>1.18.28</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
</path>
</annotationProcessorPaths>
<release>${java.version}</release>
</configuration>
</plugin>
同时确保没有其他插件排除Lombok依赖。完成这些修改后,@builder
注解恢复正常工作。
:raising_hands: 结论
有时问题不在代码本身,而在项目配置中。如果你在使用Lombok时遇到类似问题,建议检查pom.xml文件配置。希望这个经验能帮助你避免类似的麻烦。