背景描述
在日常學習過程中使用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文件,之前下載失敗的依賴都可以順利下載了