Lombok @Builder失效问题排查与解决方案

¿@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: 问题原因

  1. maven-compiler-plugin配置不正确
  2. 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文件配置。希望这个经验能帮助你避免类似的麻烦。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容