Idea中maven無法下載依賴包問題解決
用過idea開發(fā)過項(xiàng)目的同學(xué),偶爾會(huì)遇到項(xiàng)目中有一些依賴沒法下載,或者依賴包已經(jīng)有項(xiàng)目卻無法掃到的問題,下面就從原理來解決這類問題。
第一,鏡像的原因?qū)е聼o法下載依賴包。
這里我們簡(jiǎn)單介紹一下maven里面的倉(cāng)庫和鏡像,參考一位大佬的博客
1.1 maven倉(cāng)庫

1.1.1 倉(cāng)庫分類
- 本地倉(cāng)庫:位于你本機(jī)上,在項(xiàng)目中優(yōu)先從本地殘酷查找依賴包,沒有則從遠(yuǎn)程倉(cāng)庫找,并緩存到本地倉(cāng)庫中。
- 遠(yuǎn)程倉(cāng)庫(remote Repository):是一個(gè)公共的倉(cāng)庫,只需要簡(jiǎn)單的配置,便可以對(duì)其進(jìn)行包的下載。遠(yuǎn)程倉(cāng)庫分為
1.中央倉(cāng)庫 :http://repo1.maven.org/maven2/
2. 私服 :一般公司在用,公司擁有自己的一些工具包,無法公開到公共庫,則需要把這些包放到公司的倉(cāng)庫中,供公司開發(fā)使用。
3. 其它 :其他可以互聯(lián)網(wǎng)公共訪問maven repository,例如 jboss repository等
1. Mirror
mirror相當(dāng)于一個(gè)攔截器,它會(huì)攔截maven對(duì)remote repository的相關(guān)請(qǐng)求,把請(qǐng)求里的remote repository地址,重定向到mirror里配置的地址。
原理如下圖:

BRepository 這里id代標(biāo)鏡像名稱。
http://B B倉(cāng)庫的url地址。
A 表示所有訪問A倉(cāng)庫的,都會(huì)被重定向到B倉(cāng)庫去。
我們稱B為A的鏡像,也就是A倉(cāng)庫有的包,B倉(cāng)庫都有(不然還不如不配)。
下面是阿里云的鏡像配置:
<mirror> <!--該鏡像的唯一標(biāo)識(shí)符。id用來區(qū)分不同的mirror元素。 --> <id>planetmirror.com</id> <!--鏡像名稱 --> <name>aliyun</name> <!--該鏡像的URL。構(gòu)建系統(tǒng)會(huì)優(yōu)先考慮使用該URL,而非使用默認(rèn)的服務(wù)器URL。 --> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <!--被鏡像的服務(wù)器的id。例如,如果我們要設(shè)置了一個(gè)Maven中央倉(cāng)庫(http://repo1.maven.org/maven2)的鏡像,就需要將該元素設(shè)置成 central。這必須和中央倉(cāng)庫的id central完全一致。--> <mirrorOf>central</mirrorOf> </mirror>
可以看出,阿里云做為了中央倉(cāng)庫的鏡像,具體的配置本文不再敘述。
那么上面兩點(diǎn)和題目有什么關(guān)系呢?
我們可以知道中央倉(cāng)庫雖然很方便,但是身處國(guó)內(nèi)人開發(fā)人員,在下載依賴的時(shí)候經(jīng)常遇到7~8KB的下載速度,無疑給開發(fā)帶來了極大的痛苦,而使用阿里云等其它鏡像,可以大大加快依賴包的下載速度,還沒有配置的鏡像的你,趕緊配置一波吧。
這里介紹一下快速找到和修改setting,xml文件的方法
1.第一

2. 第二

查看和修改setting.xml 文件
第一 在項(xiàng)目上點(diǎn)擊右鍵

具體的配置

第二 profile的勾選
在實(shí)際的項(xiàng)目中,項(xiàng)目開發(fā)被經(jīng)常被分為開發(fā)版本,測(cè)試版本,發(fā)布版本。而這三個(gè)項(xiàng)目版本為了方便開發(fā)和測(cè)試,項(xiàng)目里面的會(huì)有很多不同的配置,比如數(shù)據(jù)庫的配置,中間件redis的配置等等。通過profile文件,我們可以通過簡(jiǎn)單的勾選來確定項(xiàng)目使用那些配置和那些包,當(dāng)然profile還有更靈活的運(yùn)用,讀者可以自行百度。所以如果你沒正確勾選profile,項(xiàng)目的有些包是無法下載的?;蛘吣銜?huì)遇到,依賴包明明就有,但是項(xiàng)目里面卻無法掃描到j(luò)ar里面文件的問題(這個(gè)問題,很常見不過基本是一些小問題,比如“未刷新”和”根文件的選擇錯(cuò)誤“等)。
當(dāng)你剛?cè)胄马?xiàng)目組的時(shí)候,一定要問清楚鏡像的配置和profile的勾選問題,當(dāng)然profile是可以在setting文件里面進(jìn)行配置的。
第三 刷新maven

總結(jié)
對(duì)于后臺(tái)項(xiàng)目的啟動(dòng),在實(shí)際過程中還有很多的問題,剛?cè)肼毜耐瑢W(xué)千萬不要傻傻的自行百度,我們除了一些基本問題排查之外,更多的時(shí)候需要詢問項(xiàng)目組的開發(fā)人員,畢竟有些配置的錯(cuò)誤你找了半天,可能別人一眼就搞定了,當(dāng)然還可以是pom文件的沖突問題,這里不再詳細(xì)介紹。
相關(guān)文章
SpringMVC4.3解析器HandlerMethodArgumentResolver接口源碼
這篇文章主要為大家介紹了SpringMVC4.3解析器HandlerMethodArgumentResolver接口源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
SpringBoot使用knife4j進(jìn)行在線接口調(diào)試
這篇文章主要介紹了SpringBoot使用knife4j進(jìn)行在線接口調(diào)試,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
一文總結(jié) Shiro 實(shí)戰(zhàn)教程
shiro是apache的一個(gè)開源框架,是一個(gè)權(quán)限管理的框架,實(shí)現(xiàn) 用戶認(rèn)證、用戶授權(quán),這篇文章詳細(xì)總結(jié)了shiro用法,感興趣的同學(xué)可以參考閱讀2023-04-04
Nacos框架服務(wù)注冊(cè)實(shí)現(xiàn)流程
這篇文章主要介紹了SpringCloud服務(wù)注冊(cè)之nacos實(shí)現(xiàn)過程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
java 遍歷request中的所有表單數(shù)據(jù)的實(shí)例代碼
下面小編就為大家?guī)硪黄猨ava 遍歷request中的所有表單數(shù)據(jù)的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09
SpringBoot2.x 集成騰訊云短信的詳細(xì)流程
本文主要對(duì)SpringBoot2.x集成騰訊云短信進(jìn)行簡(jiǎn)單總結(jié),其中SpringBoot使用的2.4.5版本,本文通過業(yè)務(wù)流程圖實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-06-06

