背景描述
在日常学习过程中使用Maven构建SpringBoot+SpringCloud服务时,有时会使用非正式版的SpringBoot和SpringCloud(非正式版是指不是最终发布的版本,而是测试版或里程碑版本,例如:2.0.0.BUILD-SNAPSHOT、Finchley.BUILD-SNAPSHOT、2.0.0.M3、Finchley.M2这些都属于非正式版,而像1.5.16.RELEASE这样的RELEASE版本即为正式版),一般在工作中构建微服务都会使用正式版本进行构建,因为正式版本稳定,Bug少。而我在学习过程中使用了SpringBoot:2.0.0.BUILD-SNAPSHOT和SpringCloud:Finchley.BUILD-SNAPSHOT这两个非正式版本,结果发现有好多依赖下载不下来,比如:spring-cloud-starter-openfeign和spring-boot-starter-data-jpa在当前版本中怎么都下载不下来,下面说说这些依赖无法下载的原因和解决办法。
为啥依赖会下载不下来呢?
首先确定你的GAV是正确的(GAV:groupId、artifactId、version),其次确定你刷新了Pom文件
如果上面两点确认无误,但依赖还是下载不下来,那么唯一可能的原因就是,你没有配置非正式版本的repository地址和pluginRepository地址
由于使用的是非正式版,大部分依赖也都是非正式版本的依赖,而Maven默认会去正式版本的库里找相应的依赖,而正式版本的repository中肯定不会有非正式版本的依赖,所以导致你的依赖一直无法成功下载
那怎么解决呢?
在你的Pom文件中增加以下配置,即非正式版本库的相关配置:
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</pluginRepository>
</pluginRepositories>
然后刷新Pom文件,之前下载失败的依赖都可以顺利下载了