当前位置: 首页 > news >正文

BUG: 解决新版本SpringBoot3.4.3在创建项目时勾选lombok但无法使用的问题

前言

当使用Spring Boot 3.4.3创建新项目时,即使正确勾选Lombok依赖,编译时仍出现找不到符号的错误,但代码中Lombok注解的使用完全正确

在这里插入图片描述

原因

Spring Boot 3.4.3在自动生成的pom.xml中新增了maven-compiler-plugin的配置,该插件用于管理注解处理器路径。但该配置存在以下两个潜在问题:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <annotationProcessorPaths>
                    <!-- 未指定Lombok版本可能导致依赖解析问题 -->
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <excludes>
                    <!-- 错误排除了Lombok依赖 -->
                    <exclude>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                    </exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
</build>

解决方案

方案一

我的解决方案,简单粗暴,直接将新增的maven-compiler-plugin注释掉,并且重新刷新Maven
在这里插入图片描述
注意:
重新刷新Maven时,如果你光点击悬浮的刷新按钮,还是会报错!!
在这里插入图片描述
需要点击右侧的Maven图标,点击重新加载所有Maven项目,才可
在这里插入图片描述
但当我可以正常运行后,我把原来注释掉的代码放开,刷新后,重新运行,居然可以运行!!我也不知道为啥,很奇怪?

方案二:最佳实践

该方案是DeepSeek给我的解决方案,亲测有效
在这里插入图片描述

1. 明确指定lombok版本

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.32</version>
    <scope>provided</scope>
</dependency>

2.修改插件配置

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.11.0</version> <!-- 明确指定插件版本 -->
            <configuration>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>1.18.32</version> <!-- 指定Lombok版本 -->
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <excludes>
                    <!-- 移除不必要的Lombok排除配置, -->
                </excludes>
            </configuration>
        </plugin>
    </plugins>
</build>

但是这里我不是很理解,为啥spring-boot-maven-plugin的排除配置没有必要?
这是DeepSeek给我的回答
在这里插入图片描述

相关文章:

  • 本地部署DeepSeek R1满血版大模型
  • deepseek 70b 部署需要的配置
  • Spring Boot电影评论网站系统设计与实现
  • 【redis】数据类型之hyperloglog
  • 了解模型压缩与加速
  • 【Arxiv 大模型最新进展】北大 Parenting 方法登场:参数魔法解锁检索增强语言模型新高度!
  • leetcode_动态规划和递归 509. 斐波那契数
  • Compose 动画,让页面动起来
  • 2014年下半年试题一:论软件需求管理
  • 创建型模式 - 建造者模式 (Builder Pattern)
  • ProGuard加密混淆SpringBoot应用代码
  • RTSP中RTP/RTCP协议栈、NTP同步及QoS机制
  • hutool工具类的DateUtil和LocalDateTimeUtil
  • AMD GPU 的 Context Roll机制
  • MyBatis简明教程
  • python爬虫学习第十一篇爬取指定类型数据
  • C 语言结构体:从入门到进阶的全面解析
  • 赋能农业数字化转型 雏森科技助力“聚农拼”平台建设
  • pytorch基础-nn.linear
  • 【软件测试阶段一】【软件测试:确保项目质量的关键防线】
  • javaweb做商业网站/有趣的软文
  • 网页设计欣赏及点评/泰安优化关键词排名哪家合适
  • 广告公司赚钱吗/seo推广 课程
  • c 做的网站又哪些/沈阳seo合作
  • 网站开发流程传智播客/软文推广名词解释
  • 哪家微信网站建设好/开发做一个网站需要多少钱