在开发中有一些问题是很头痛的,jar包依赖就是其中之一,个别jar包依赖我们无论怎么刷新项目,重启编译器,删除jar包通过Maven重新下载依赖都不能解决。
如下图就是典型的依赖不能被识别: 点击刷新,重新下载依赖都没用,依赖始终不能被识别
前往本地仓库(默认在:C:Userscm.m2 epository目录下面)查看依赖包,发现是有的:
删除后继续下载同样如此
这个问题也困扰了我许久,因为我的依赖包本地明明是有的,但是Maven就是不能解析识别,我删除后继续刷新,依然是这样。
然后我就想到了对比一下可以正常识别的版本和不能识别的版本的依赖:
不难看出,可以被识别的依赖和不能被识别的依赖包还是有所不同的,首先jar包名字就不同,然后就是有pom文件,依赖不能被Maven解析应该就是jar包不完整的问题吧,然后就是为什么会出现这种问题呢?(我不懂,就暂且归结为网络问题吧!,网络不稳定,或者我们中途停止了jar包的下载导致下载的包不完整),删除jar包后在项目中重新下载为什么也会这样呢?(我的认知依然只能归结于网络,多次刷新依然这样,可能就不是网络问题了,如果有知道原因的大神欢迎留言指教)
对于以上这种问题,肯定有解决方案的,不可能因为一两个jar包没有下载直接就把项目都给重构或者停止了。经验丰富的开发者肯定有一套精准快速解决这类问题的方法,本人看了无数篇博客,依然没有找到好使的方法。在不断的探索下,我使用了一个比较笨拙的方法:
1. 直接在Maven中央仓库搜索我们需要的jar包(Maven中央仓库)
如我的不能被Maven识别的jar包:thymeleaf-extras-java8time
2. 点击需要的jar包名称进入版本库
3. 点击对应版本的包进入如下界面点击View All(英语不好,应该是预览所有之类的意思,点一下)
进入一个有很多链接的界面
下载ZIP文件
下载ZIP文件解压
这个目录里面包含了相关jar包的使用说明以及它的jar包
将本地仓库的旧的不能识别的jar包清空
将解压后的dist目录下面的jar包全部拷贝到本地仓库对应目录
重启Idea开发工具(一定要重启,一定要重启)
最后我们的问题得以解决,jar包可以被识别了,爆红消失了
Maven依赖不能被识别,爆红什么的就是没有包,或者包不完整。在依赖版本定格,不允许或者不能切换其它版本的情况下,我们可以通过这样一种复杂但是有效的方法解决这类问题。如果大佬有更好的解决这种问题的方式,欢迎留言指教。
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦