本地仓库中有jar,但是maven依然不从本地仓库读取,而从远程仓库来获取,理论上maven加载顺序应该是首先先从本地repository读取,然后再从远程仓库下载,可是为什么这个jar,会直接从远程仓库下载呢?
分析一下本地仓库路径下的文件,(这里是随便截的一个其他jar的,真正出问题的那个jar被我做了一些处理,无法还原了。 但是里面内容都是差不多, 可以看这个就行),这个里面主要有四个文件,一个jar,一个pom。两个sha1,分别对应上面的那个jar和pom。(你说这不是五个么?另一个不重要, 不要在意)猜测问题就处在sha1这个文件的上面。sha1是一种hash算法,主要用来验证文件是否被修改过。估计是maven通过sha1验证jar和pom文件的正确性时,验证不通过, 所以就从远程仓库重新下载,
解决方案
直接删掉这两个sha1结尾的文件,重新在maven reload一下,发现问题解决,不再从远程仓库下载了。
那么问题来了,为什么会存在sha1验证源文件验证不通过呢?jar文件和pom文件有任何微小的变动都会导致,sha1验证失败。但是怎么变了,就不清楚了,
,所以做这种操作时你要确保你的jar,跟pom文件都是没有问题的,那你就可以放心把sha1文件删掉。如果不能保证的话,还是要谨慎操作