问题

最近公司来了新同事,把项目搭起来后有一些jar包使用maven拉不下来,总是出现错误,最初以为是他机器的一些配置问题,没有去处理,直接把有些包拷给他了,但我在使用另外一个项目的时候也遇到了同样的问题,类似于下面的错误:

1
2
错误: 读取xxxxxx.jar时出错; error in opening zip file  

分析

公司maven仓库是自己使用gitlab搭建的,具体的一些信息可以参考: 利用github搭建个人maven仓库

在网上搜索了一大圈后看到了一个稍微对我有用的信息,看到有个人说被拉取的jar地址302跳转了,然后我随便打开了一个出错的jar的仓库地址,下载完全没有问题,下载下来的jar也没有问题,见鬼了。然后继续分析错误日志,有条莫名其妙的 WARNING:

1
2
[WARNING] Checksum validation failed, expected <!DOCTYPE but is 548af3014dea0fe64446c420ffe7ae02412ccbe8  

一般来说这个检查即使不通过也不会影响jar包的下载,而且内部有过这种签名错误的情况,所以没有太关注。但这次这个好像有点不太对劲,预期的居然是 <!DOCTYPE ,打开jar文件看一下,居然是一个html页面,一个gitlab的登录页面。好吧这下子完全清楚了,原来是仓库的权限调整了,无权获取文件,直接跳转到了登录页,我前面能在浏览器里打开是我本身就是登录状态(这个也把我坑了)。

最后

还是自己把自己坑掉了,错误日志给的其实已经相当清楚了,但还是没发现。