问题原因
根据上图的生成的问题描述可知,这种问题造成的基本原因是因为无法从maven网站下载到我们需要导入的jar包,所以导致此类问题的发生。所以首先要确定的一点就是你的网络是正常的,在保证这个的前提下再尝试以下的各类解决方案。
本地仓库没有导入需要的maven包情况下的解决方案:
1:确定idea设置的Maven路径与仓库路径是一致的
在一开始安装maven的时候,如果你是自定义安装的maven路径,那么在idea中就要修改默认的maven配置路径,这个可以打开idea的FILE->settings中进行查看,比如我的maven就是安装在D盘,那么就要修改相应的maven安装路径,配置以及本地仓库。
2:修改地址镜像
由于一些不可抗力因素,所以我们前往maven官网下载jar可能会出现下载失败的问题,因此需要将地址修改成国内镜像地址,使用过linux的朋友们应该都知道这个措施。
打开本地maven路径下的settings.xml文件,修改mirror镜像地址。
<mirrors>
<!--在mirrors节点(标签)下添加中央仓库镜像 160行附近-->
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirrors>
以上是我修改的国内阿里云镜像地址,使用这个地址是可以成功下载maven中的jar包的。
3:查看是否是因为证书无效的原因
在maven运行clean,如果出现上述问题,那么就是证书错误,访问https协议的网站,需要ssl认证才行,这里没有证书,我们可以用下面的方式忽略ssl检查导致的问题。
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
再向File - settings中的maven - Runner中添加这句话:
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true -DarchetypeCatalog=internal
4:直接下载相应jar包存入
如果说上述方法均无法解决问题,那可以尝试直接去maven官网下载相应的包导入到本地仓库进行使用。
例如我出现问题的事com/jolira/hickory/1.0.0/hickory-1.0.0.pom这个包,那么就进入https://mvnrepository.com,此maven官网地址。
按上述图片下载相应的包之后放入本地maven仓库的相应路径中,如下图所示。
然后在命令行重新运行mvn clean install,这样基本就能导入此包了。
发现本地仓库已经存在相应包的情况下出现此类问题解决方案:
很有可能存在的一个情况并且不易被察觉,请务必注意这个点所描述的情况!!!
如果你发现本地的本地仓库有对应的jar包,但是maven install 一直提示 Could not transfer artifact。
类似此类问题,你务必要去查看一下本地仓库是否存在此包,当我查看时发现本地仓库是有这个文件的,如下图所示:
但是你会发现与成功导入仓库的包相比此仓库多了几个奇怪的文件,下图是正常导入的某包仓库文件夹:
后来查找原因发现:
根据上述描述可知,将这三个相应的属性文件:m2e-lastUpdated.properties、slf4j-api-1.6.4.jar.lastUpdated、slf4j-api-1.6.4-sources.jar.lastUpdated 删除掉。然后重新运行maven就可以正常的从仓库下载了。