Maven本地仓库中有jar包,但项目编译失败,显示jar包不存在

背景:同事从码云上克隆项目,项目编译不通过,报错信息是有一个jar包在Maven仓库中不存在

此时,他的本地Maven仓库中确实不存在这个jar包。

解决步骤:

1: Idea中,用Maven 的Reimport 重新导包,正常情况下,如果存在本地仓库中没有的jar包,会自动下载。但是,在他电脑上下载不下来(原因:他电脑没有配置Maven的中央仓库为阿里云仓库)。

1.1 :基于以上情况,有两种解决方案:

  a : 修改Maven的中央仓库为阿里云中央仓库(settings.xml 文件)。

    
  <mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>
          http://maven.aliyun.com/nexus/content/groups/public/
      </url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
  </mirrors>
View Code

    好处:服务器在国内,下载速度快;jar包资源更齐全(本次遇到的这个缺失的包,国外的中央仓库没有,阿里云仓库就有)。

  b :不修改中央仓库,从其他地方拷贝一个jar包到他的本地仓库路径下面(本次我们是用的这种方法,后面还遇到了其他坑,请继续往下看...)。

2:基于以上两种解决方案,我们目前选择的是第二种:直接拷贝 jar 包到他的本地仓库路径下。正常逻辑下此时应该就没有问题了,不料,IDEA 还是编译不通过,还是显示jar包不存在。Reimport 重新导包不行,重启IDEA也不行。

        

 2.1: 解决方案:

  可以看到本地仓库中,有几个 *.lastUpdated 文件,此时我们把这几个 .lastUpdated 文件全部删除,然后重启IDEA,重启后,IDEA就编译通过不报错了。

  这个.lastUpdated 文件是在下载jar包的时候,由于网络不好或中央仓库中没有这个jar 等原因,导致jar包没有下载成功而生成的文件。在这里,删掉这个文件后,IDEA编译就通过了,可能是因为IDEA被这个.lastUpdated文件给误导了,认为本地没有需要的jar包,所以就报错(自己的猜测,没有其他依据来佐证...)。

原文地址:https://www.cnblogs.com/y3blogs/p/13064138.html