解决Maven依赖下载不全的问题
背景描述
在日常学习过程中使用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文件,之前下载失败的依赖都可以顺利下载了