maven本地仓库中的*.jar.lastUpdated 处理

4 篇文章 0 订阅
1 篇文章 0 订阅

       在eclipse中使用maven来管理依赖的jar文件已是常态,但经常会遇到eclipse中的控制台输出警告:Missing artifact...,然后项目pom.xml文件被标红,进入文件鼠标移动到红色标记处,也提示missing  artifact。到本地maven仓库中,对应jar包目录下查看,有xx.jar.lastUpdated类的文件,这种文件肯定是不能用,相当于一种下载时的临时文件,当下载jar文件出现中断,就会有这种文件。

       基本处理方法:删除这类文件,找个网络好的环境(能连接到远程maven仓库),重新下载。

       本文要说明的是另一种情况,jar文件本身已经下载完整,只是我们换了个网络环境(如原来在公司内网,使用的是公司私服nexus,现在换到了外网)。eclipse在启动的时候一般会自动进行maven builder。maven index 更新,依赖检查等等。此时的外网因无法连接到原公司的私服nexus,导致相关检查失败。提示missing  artifact。这时jar包虽都在,项目却无法调试运行等操作。曾经就遇到这类问题,在甲方内网进行开发出现这类问题。晚上回到住处用vpn连接公司内网,进行项目的运行、调试。后来受不了这种搞法,想找个一劳永逸的办法。

     方法一出现:删除jar目录下的_maven.repositories文件,该文件是记录的jar的下载相关信息。以后都不会出现missing  artifact的问题。

    上面说的是换了网络环境的情形,还有另一种情形也会出现这类问题。就是修改了本地maven配置中的远程仓库地址。接着上面的情形说。换到外网后,很自然的想到一个方法就是修改maven配置中的远程仓库地址,原来用公司私服,现在肯定是不行了。换个阿里的镜像试试。结果是大部分jar包可以使用,没有提示miss,但仍有少量jar包提示。细看这些jar包就知道,这些是自建jar包后加入私服nexus的。阿里镜像肯定是不会有的。

      之前写过类似的文章,就是对比下载好的jar包目录下的_maven.repositories文件内容,能发现些端倪。

     第二种方法出现:对比_maven.repositories后发现,更新失败产生astUpdated 文件后,该文件的内容可能会如下:

     xxx-3.0.jar>   

    正确的应该是  xxx-3.0.jar> Nexus=            “>”后必须有内容,不能空。不一定是Nexus=,也可能是其他如:

    xxx-3.0.jar>alimaven=

     所以按照正确的_maven.repositories文件修改即可

     再说下eclipse在启动的时候自动进行maven builder。maven index 更新,依赖检查做了些什么?(这些也是网上看到相关信息,未自己验证https://blog.csdn.net/u011990675/article/details/80066897

    即使jar包是已经下载好的,之前使用也没问题,下次启动eclipse时,maven  builder开始,会检查_maven.repositories文件中jar包来源哪个库,就是“>”后面的内容,并和本地maven配置文件setting.xml中的远程仓库进行对比,如果一样,且网络通畅。就能正常更新。如果不一样,maven就会以setting.xml配置的远程仓库再下载一次。能下载下来就没问题,如下:

mysql-connector-java-5.1.25.pom>Nexus=
mysql-connector-java-5.1.25.jar>Nexus=
mysql-connector-java-5.1.25.jar>alimaven=
mysql-connector-java-5.1.25.pom>alimaven=

 

如果下载不了,就会提示missing  artifact。特别是自己的私有jar包,之前是公司内网使用,没问题。换到外网,使用阿里镜像。maven就会到阿里镜像再去找一次,自然是找不到。这样造成虽然jar包存在,却还是提示missing  artifact,生成了lastUpdated文件。所以可以把原来的xxx.jar>Nexus=  修改为xxx.jar>alimaven=,这样maven就认为是从setting.xml中的远程仓库下载的,不用再去找了。

 总结:eclipse在启动,maven builder时,会检查pom.xml中的依赖jar包,是否在本地有了。没有去setting.xml

中配置的仓库下载。本地有了,判断是不是来源于setting.xml中配置的仓库,是就不用下载了。不是就要重新下载

 

  

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值