这几天被maven搞死了,本来是在学习springcloud的。pom文件如下
4.0.0
com.qiumingjie
springcloud-client-order
0.0.1-SNAPSHOT
springcloud-client-order
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
2.0.1.RELEASE
org.springframework.cloud
spring-cloud-dependencies
Finchley.M7
pom
import
org.springframework.boot
spring-boot-starter-web
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.cloud
spring-cloud-starter-openfeign
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false
结果maven一直爆红,看了本地仓库也没有找到jar包,所有的jar包都是.lastUpdated,也就是下烂了,而同事却不会,而且用的是同一个局域网且换了4g试过,不是网络的问题导致的jar包下载不下来,一时间排查不了问题,就先拷贝同事的jar包到指定的位置,然后删除.lastUpdated文件和远程仓库文件和校验文件。都解决了。
操作可以看我另外一篇博客https://blog.csdn.net/Java_Studier/article/details/104966908
然而这个百试百灵的方法遇到瓶颈了,然后我开始以下排查
1.现在问题如下,maven爆红,下载jar包失败,提示的错误是
Could not find artifact org.springframework.cloud:spring-cloud-starter-openfeign:pom:2.0.0.M1 in aliyun (http://maven.aliyun.com/nexus/content/groups/public)
2.先去仓库看看jar包有没有下下来,我猜是下载失败了
果不其然,恶心的.lastUpdated文件,jar包下载失败,把所有.lastUpdated删除,刷新一下maven,发现还是不行,还是一样的,清缓存各种换网络还是不行,说明真下不来,这个时候没办法了
3.去同事那里拷贝它的仓库文件,大概路径是这样子的文件
仓库地址\org\springframework\cloud\spring-cloud-starter-openfeign\2.0.0.M1
这个是拷贝来的文件,很熟悉了_remote.repositores是指定远程仓库的,假如maven算过发现和本地不一样它会重新下载,所以为了防止maven重新下载,而且我也下载不了哈哈哈哈,我把它删了,.sha1是校验文件,也一并删了,-lastUpdate.properties是最后一次下载的信息,也可以删了,所以其实就是留下我要的jar包还有pom文件而已,放在自己的仓库里面
画风大概是这样子的,我想这样子就稳了吧,刷新一下maven,还是爆红,一样的错误,不过不一样的是它没有再下载了,说明了其实本地是有jar,可是idea扫不到
4.这个问题真是卡死我了,以为是idea的锅删了idea下载了最新版本的,结果发现还是一样,卡主的时候突然想到一件事,springcloud有指定一个仓库地址的在pom文件中配置的
然而我下载的时候报的错是
Could not find artifact org.springframework.cloud:spring-cloud-starter-openfeign:pom:2.0.0.M1 in aliyun (http://maven.aliyun.com/nexus/content/groups/public)
说明它是从阿里下载一直下载不下来导致的,于是乎检查一下idea的maven配置
发现一切没问题,user settings file指定的是maven的配置文件,local repository指定的是本地的maven仓库地址,而我的maven配置文件如下,就是配置了一个阿里的仓库
F:\mavenRepository
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
5.这个时候我想到我把这个镜像仓库删除之后让idea直接从pom文件指定的仓库去下载不就可以了吗,结果发现它还是不行,最后我发现直接把pom文件指定的仓库直接加到镜像中,它就会去指定的仓库中下载了,
F:\mavenRepository
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
6.修改了这个之后发现自己也能正常下载jar包不会失败了,归根结底就是maven一直从阿里下,而不是从pom文件中下载导致的,这个时候要讲pom文件中指定的仓库放在自己的maven配置文件中即可