303 字
1 分钟
有关IDEA中Lombok失效、找不到符号问题的解决方案
我在使用时发现Lombok失效,很多相关无法使用
例如@、@NoArgsConstructor 、@AllArgsConstructor,得自己手动添加getter、setter方法
还有@Slf4j,在运行时会报找不到符号的错误,导致无法顺利运行程序
于是我便在网上寻找方法,发现出现相同问题的远不止我一个人,我将网上提供的解决方案都试了一遍
最后发现需要指定lombok依赖的版本,而不能使用其默认的版本
其原因不详,但在指定版本后以上问题都完美解决。
ps:在指定完版本后记得刷新,并运行一下自带的clean和complie插件
一共三个地方需要指定版本:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <——————此处 <optional>true</optional> </dependency> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <——————此处 </path> </annotationProcessorPaths> </configuration> </plugin> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <——————此处 </exclude> </excludes> </configuration>2025.2.10 ——新进行编译时再次发现失效找不到符号
原本的父pom的配置如下:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <artifactId>spring-boot-starter-parent</artifactId> <groupId>org.springframework.boot</groupId> <version>2.7.3</version> </parent> <groupId>com.sky</groupId> <artifactId>sky-take-out</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <modules> <module>sky-common</module> <module>sky-pojo</module> <module>sky-server</module> </modules> <properties> <lombok>1.18.30</lombok> <java.version>21</java.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok}</version> </dependency> <----其他依赖项---> </dependencyManagement></project>这里明明指定了版本号,却还是报错了。
最后加上如下代码成功解决:
<build> <pluginManagement> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> <annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> </path> </annotationProcessorPaths> </configuration> </plugin> </plugins> </pluginManagement> </build>若有帮助,请留个赞吧
原文链接: 有关IDEA中Lombok失效、找不到符号问题的解决方案 作者: Yilena
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
有关IDEA中Lombok失效、找不到符号问题的解决方案
https://blog.csdn.net/2401_88959292/article/details/145309799?spm=1001.2014.3001.5501 部分信息可能已经过时
相关文章 智能推荐
1
通过mysqldump进行数据迁移时权限不足的解决方案
故障排查 本文针对使用mysqldump进行MySQL数据迁移时遇到的“Access denied”权限不足报错(错误码1227)提供了有效的解决方案。通过分析报错日志,指出问题根源在于导出的SQL文件中包含了与GTID(全局事务标识)相关的语句,而逻辑导入通常无需参与GTID复制链路。文章给出了在生成SQL文件时添加`--set-gtid-purged=OFF`参数的解决办法,并额外提醒了DataGrip默认勾选`lock tables`可能导致的业务阻塞风险,建议在InnoDB引擎下使用`--single-transaction`以获取一致性快照,确保迁移过程平稳安全。
2
FastJson日期类无法解析的解决方案
故障排查 本文针对在Spring Boot项目中引入FastJson2依赖后,实体类日期字段(如Date类型)解析失败并抛出MethodArgumentNotValidException异常的问题,进行了深入分析。指出问题根源在于Spring MVC默认的日期转换器覆盖了FastJson的配置,导致非JSON请求体与JSON请求体的转换逻辑分离。文章提供了两种有效的解决方案:一是通过在字段上添加`@DateTimeFormat`注解指定解析格式;二是通过实现`WebMvcConfigurer`接口全局配置日期转换器(DateFormatter),以统一处理日期格式的解析与格式化。
3
Knife4j未配置却需要登录认证的解决方案
故障排查 本文针对在Spring Boot项目中使用Knife4j时,未配置登录认证却意外弹出登录页面的问题提供了解决方案。通过排查发现,该登录拦截并非来自Knife4j自身配置,而是由项目中引入的Spring Security框架触发。文章给出了两种解决思路:一是直接移除不必要的Spring Security依赖;二是在保留Security框架的前提下,通过配置`SecurityFilterChain`,将Knife4j的核心资源路径(如`/doc.html`、`/v3/api-docs/**`等)加入白名单予以放行,从而完美解决接口文档访问受限的问题。
4
Sharding-JDBC 定时任务 SQL 无响应的解决方案
故障排查 本文针对在使用Sharding-JDBC进行分库分表时,定时任务中SQL执行无响应且无明显报错的问题进行了深度排查与解决。通过调整日志级别,发现问题根源在于Spring定时任务默认使用的`ScheduledThreadPoolExecutor`线程池未自动设置上下文类加载器,导致Sharding-JDBC在初始化配置时抛出空指针异常并阻塞线程。文章给出了简洁有效的解决方案:在定时任务执行逻辑起始处,通过`Thread.currentThread().setContextClassLoader()`显式设置当前类的类加载器,从而成功恢复Sharding-JDBC的正常运行与SQL输出。
5
Docker部署的xxl-job执行本地任务时无法连接执行器的解决方案
故障排查 本文针对使用Docker部署xxl-job并调度宿主机本地任务时出现的“无法连接执行器”及连接超时问题,进行了深入的原因分析与解决。指出问题根源在于Docker默认创建的虚拟网卡导致跨网段不可达,使得自动注册的执行器IP无法被外部访问。文章提供了两种切实可行的解决方案:一是手动将执行器IP配置为宿主机的公网可路由地址;二是在启动Docker容器时通过`--network=host`参数指定网络命名空间,使容器共享宿主机网段,从而彻底解决网络隔离带来的调度失败问题。










