【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 ↩︎

你可能感兴趣的:(Caused,By,Maven,maven,compiler,lombok,symbol)