ruanjianlaowang

1. 场景描述

maven库用的是公司私服和阿里云结合的方式(maven多仓库配置),本项目maven依赖的有其他项目组的jar包(单点登录),但是天有不测风云,依赖单点登录的好几个jar包,在编译(build)的时候一直Downloading,卡死了。

2. 解决方案

2.1 问题定位

以前好好的,突然不行了,首先肯定先找jar包提供方,然而单点登录项目组回复N久没动了,看了maven库jar包是没变化,里面的日期也没变化,但是几个同事都不能更新了,肯定是私服上的jar包有变化了,看了下私服上md5、sha1这些好像变化了。。但是也不确定,也不好说,还是看看怎么解决吧。

2.2 解决方案

问题原因是服务器配置文件跟本地文件进行对比(maven-metadata.xml),通过里面的时间戳进行对比,本地日期大于等于服务器jar包日期,不更新jar包;服务器日期大于本地库日期,更新jar包,问题就出在maven-metadata这个问题文件上了。

两个解决方案

2.2.1 更改setting文件。

本人maven配置文件在:E:\m2下,打开文件,找到jar包对应的仓库。

<updatePolicy>always</updatePolicy>

-----------------更改为----------
<updatePolicy>never</updatePolicy>

updatePolicy有三个参数:aways:每次,never:从不,daily:每日,这样就可以编译成功了。

2.2.2 重新下载

当Downloading卡住了,首先停止服务,去本地maven仓库(本人:E:\m2\repository)下面找到该jar包对应文件夹,在文件夹里面会有个lock后缀的文件,就是在比对过程中出问题了,文件锁住了,删除了该lock文件,但是测试了下不行,下载还是会有问题,要删除了整个文件夹,例如“E:\m2\repository\com\oracle\ojdbc6\11.2.0.3,把文件夹11.2.0.3整个给删除了,重新编译下载,因为整个文件夹都没有了,maven编译的时候就会去下载该jar包,相当于新的下载,不会去比对,这样就可以直接通过了。

2.2.3 结论

建议采用第二种,原因:

(1)直接,快速,直接把jar包对应的文件夹删除了,重新下载就好了。

(2)第一种方案会存在问题,假如外围系统jar包正常更新了,版本没变化,但是增加了新的方法,这样就更新不到新的方法了,会有问题。


I’m 「软件老王」,如果觉得还可以的话,关注下呗,后续更新秒知!欢迎讨论区、同名公众号留言交流!

相关文章:

  • 2021-11-28
  • 2021-09-27
  • 2021-05-03
  • 2021-04-16
  • 2021-05-13
  • 2021-10-12
  • 2021-07-31
  • 2021-12-08
猜你喜欢
  • 2021-11-15
  • 2021-04-04
  • 2021-05-21
  • 2021-09-30
  • 2021-07-13
  • 2022-01-05
  • 2021-12-26
相关资源
相似解决方案