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

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

1. 主诉:

  • windows OS,jdk1.8,maven3.6.3,IDEA2020.1
pom依赖项:
      <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.18.12</version>
          <scope>provided</scope>
  	  </dependency>
  • lombok plugins-0.3.0,正常安装
  • 在file>setings>build>compiler>Annotation processing中Enable annotation processing
  • 在代码编辑时,正常import lombok
  • 在External Libraries中能够正常看到lombok的jar包

2. 症状:

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

idea java项目提示包不存在 idea 程序包lombok不存在_idea java项目提示包不存在

3. 问题排查:

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

idea java项目提示包不存在 idea 程序包lombok不存在_maven_02


idea java项目提示包不存在 idea 程序包lombok不存在_斜杠_03


idea java项目提示包不存在 idea 程序包lombok不存在_idea java项目提示包不存在_04

4. 解决方法:

将setting.xml内的localRepository项注释,使得idea使用自带的.m2仓库,即可完美解决该问题。

idea java项目提示包不存在 idea 程序包lombok不存在_斜杠_05

5. 问题重新定位

经资深后端工程师指点后,发现该问题的根本原因是localRepository所配置的路径出错(误用了双正斜杠’//’)。在windows OS,正确的路径分割符是使用双反斜杠’\\‘或单正斜杠’/’;在linux OS,则只能使用单正斜杠’/’。注:下图配置源自setting.xml文件。我使用的是自己安装的maven,故该xml文件在maven的安装路径下。

若使用IDEA自带的maven,其路径一般为C:\user\Admnistrator.m2\setting.xml

idea java项目提示包不存在 idea 程序包lombok不存在_xml_06


在localRepository路径配置正常的情况下,自行安装的Localwarehouse仓库和.m2\Repository仓库都可以使用!

6. 总结

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