【Caused by】Maven编译错误:找不到符号(Cannot find symbol)

文章目录

前言

mvn installmvn package之后报“Cannot find symbol”错误,这个问题一般有几种原因:

  • 类的包名有误
  • maven-complier-plugin版本不兼容:如果是jdk1.8的代码,compiler也应该是对应的版本
  • 本地maven仓库旧jar包未清除:mvn clean install
  • IDE缓存未刷新:如IDEA,File->Invalidate Caches/Restart,可清除IDE的缓存

但笔者在尝试了上述所有方法之后,编译仍然报错。

原因

笔者重新检查了代码的所有变更,发现在pom中引进了新的依赖,即lombok(利用其@Data注解可动态生成类的setter/getter等)。stash所有变更之后,笔者仅保留了lombok注解的类和调用方法,最后发现是调用方法中找不到注解类的setter方法。

原因简单地来说,就是maven-compiler-plugin没有使用lombok的Annotation Processor去动态生成setter/getter方法,详见1

解决方法:

  1. 升级maven-compiler-plugin至3.5以上
  2. 降级lombok至1.14.8以下

  1. https://stackoverflow.com/a/47684351 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值