maven-build-downloading

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 「软件老王」,如果觉得还可以的话,关注下呗,后续更新秒知!欢迎讨论区、同名公众号留言交流!

posted @ 2019-08-01 17:32  软件老王  阅读(1436)  评论(0编辑  收藏  举报