Error:java: 程序包lombok不存在- IDEA+maven+lombok

IDEA2020.1版编译项目时报lombok包不存在的错误

解决方法:重新确认maven的setting.xml中LocalRepository指向的路径是否存在并可访问

1. 主诉:

  • windows OS,jdk1.8,maven3.6.3,IDEA2020.1
  •   pom依赖项:
          
              org.projectlombok
              lombok
              1.18.12
              provided
      	  
    
  • lombok plugins-0.3.0,正常安装
  • 在file>setings>build>compiler>Annotation processing中Enable annotation processing
  • 在代码编辑时,正常import lombok
  • 在External Libraries中能够正常看到lombok的jar包
    Error:java: 程序包lombok不存在- IDEA+maven+lombok_第1张图片
    Error:java: 程序包lombok不存在- IDEA+maven+lombok_第2张图片

2. 症状:

项目编译不通过,报Error:java: 程序包lombok不存在,尝试各大论坛的解决方案均失败
java: 程序包lombok不存在

3. 问题排查:

项目使用了本地自行安装配置的maven3.6.3,非IDEA自带的版本,并在setting.xml中配置了localRepository(指向LocalWarehouse)和mirrors(指向阿里云)。而IDEA-2020.1版本却无法识别自行设置的localRepository,导致安装在maven本地仓库的jar依赖项在编译时无法被扫描到,出现包不存在的错误。
Error:java: 程序包lombok不存在- IDEA+maven+lombok_第3张图片
Error:java: 程序包lombok不存在- IDEA+maven+lombok_第4张图片
Error:java: 程序包lombok不存在- IDEA+maven+lombok_第5张图片

4. 解决方法:

将setting.xml内的localRepository项注释,使得idea使用自带的.m2仓库,即可完美解决该问题。
Error:java: 程序包lombok不存在- IDEA+maven+lombok_第6张图片

5. 问题重新定位

经资深后端工程师指点后,发现该问题的根本原因是localRepository所配置的路径出错(误用了双正斜杠’//’)。在windows OS,正确的路径分割符是使用双反斜杠’\\‘或单正斜杠’/’;在linux OS,则只能使用单正斜杠’/’。注:下图配置源自setting.xml文件。我使用的是自己安装的maven,故该xml文件在maven的安装路径下。
若使用IDEA自带的maven,其路径一般为C:\user\Admnistrator.m2\setting.xml
Error:java: 程序包lombok不存在- IDEA+maven+lombok_第7张图片
在localRepository路径配置正常的情况下,自行安装的Localwarehouse仓库和.m2\Repository仓库都可以使用!

6. 总结

以后再次遇到类似故障时,应当冷静地分析,从问题的根源出发。如编译时找不到jar包,要排除该包是否在仓库中存在;仓库的引用路径是否有误;若仓库是在C盘中创建的,还要考虑文件权限问题。
上述方法适用于maven仓库找不到软件包的错误。

你可能感兴趣的:(Java后端,java)