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不存在,尝试各大论坛的解决方案均失败
java: 程序包lombok不存在

3. 问题排查:

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

4. 解决方法:

将setting.xml内的localRepository项注释,使得idea使用自带的.m2仓库,即可完美解决该问题。
在这里插入图片描述

5. 问题重新定位

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

6. 总结

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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐