解決方案
在本地maven的setting配置文件中加上阿里云鏡像地址就行了:
新增配置內(nèi)容:
<!-- 阿里鏡像倉(cāng)庫(kù) --> <mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url> https://maven.aliyun.com/nexus/content/groups/public/ </url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
接著,更新依賴就成功了。
科普一下
Maven的倉(cāng)庫(kù)、索引
中央倉(cāng)庫(kù):目前來(lái)說(shuō),https://repo1.maven.org/maven2/是真正的Maven中央倉(cāng)庫(kù)的地址,該地址內(nèi)置在Maven的源碼中,其它地址包括著名的ibiblio.org,都是鏡像。
索引:中央倉(cāng)庫(kù)帶有索引文件以方便用戶對(duì)其進(jìn)行搜索,完整的索引文件至2019年1月22日大小約為1.04G,索引每周更新一次。
本地倉(cāng)庫(kù):是建立在本地機(jī)器上的Maven倉(cāng)庫(kù),本地倉(cāng)庫(kù)是中央倉(cāng)庫(kù)(或者說(shuō)遠(yuǎn)程倉(cāng)庫(kù))的一個(gè)緩沖和子集,當(dāng)你構(gòu)建Maven項(xiàng)目的時(shí)候,首先會(huì)從本地倉(cāng)庫(kù)查找資源,如果沒(méi)有,那么Maven會(huì)從遠(yuǎn)程倉(cāng)庫(kù)下載到你本地倉(cāng)庫(kù)。這樣在你下次使用的時(shí)候就不需要從遠(yuǎn)程下載了。如果你所需要的Jar包版本在本地倉(cāng)庫(kù)沒(méi)有,而且也不存在于遠(yuǎn)程倉(cāng)庫(kù),Maven在構(gòu)建的時(shí)候會(huì)報(bào)錯(cuò),這種情況可能發(fā)生在有些Jar包的新版本沒(méi)有在Maven倉(cāng)庫(kù)中及時(shí)更新。Maven缺省的本地倉(cāng)庫(kù)地址為${user.home}/.m2/repository。也就是說(shuō),一個(gè)用戶會(huì)對(duì)應(yīng)的擁有一個(gè)本地倉(cāng)庫(kù)。當(dāng)然你可以通過(guò)修改${user.home}/.m2/settings.xml配置這個(gè)地址:
<settings> ··· <localRepository> D:\maven\repository</localRepository> ...</settings>
提交內(nèi)容:只要你的項(xiàng)目是開(kāi)源的,而且你能提供完備的POM等信息,你就可以提交項(xiàng)目文件至中央倉(cāng)庫(kù),這可以通過(guò)Sonatype提供的開(kāi)源Maven倉(cāng)庫(kù)托管服務(wù)實(shí)現(xiàn)。
IntelliJ IDEA利用索引實(shí)現(xiàn)自動(dòng)補(bǔ)全
眾所周知,由于偉大的中國(guó)防火墻,所以在使用IDEA下載Maven倉(cāng)庫(kù)索引的時(shí)候,要么無(wú)法訪問(wèn),要么就是速度極慢,這對(duì)開(kāi)發(fā)人員帶來(lái)了極大的不便,所以一般公司都用Nexus搭建一個(gè)公司內(nèi)部的私服。同時(shí)利用私服更有利于對(duì)公司內(nèi)部開(kāi)發(fā)人員依賴的Jar包版本進(jìn)行控制。
也許你會(huì)問(wèn),中央倉(cāng)庫(kù)帶有索引,為什么本地的IDEA也需要下載索引呢?那么直接看下圖你就明白了,如果本地沒(méi)有下載索引的話,在pom.xml文件中添加依賴是得不到任何提示的。
IntelliJ IDEA中Maven插件配置
IntelliJ已經(jīng)內(nèi)置了對(duì)Maven插件的支持,當(dāng)然你也可以配置自己的Maven,只需要進(jìn)入File->Settings->Maven->Maven home directory|User settings file|Local repository配置即可。注意如果使用自己配置的Maven,那么一定要勾選Override,否則配置不生效。
下載Maven倉(cāng)庫(kù)的索引
在配置完成之后就可以下載倉(cāng)庫(kù)索引了,注意這是一個(gè)非常耗時(shí)的過(guò)程,建議利用晚上或者出去午飯時(shí)間下載。下載過(guò)程及下載完成之后狀態(tài)如下圖所示。