Idea中maven無法下載依賴包問題解決
用過idea開發(fā)過項目的同學,偶爾會遇到項目中有一些依賴沒法下載,或者依賴包已經(jīng)有項目卻無法掃到的問題,下面就從原理來解決這類問題。
第一,鏡像的原因?qū)е聼o法下載依賴包。
這里我們簡單介紹一下maven里面的倉庫和鏡像,參考一位大佬的博客
1.1 maven倉庫
1.1.1 倉庫分類
- 本地倉庫:位于你本機上,在項目中優(yōu)先從本地殘酷查找依賴包,沒有則從遠程倉庫找,并緩存到本地倉庫中。
- 遠程倉庫(remote Repository):是一個公共的倉庫,只需要簡單的配置,便可以對其進行包的下載。遠程倉庫分為
1.中央倉庫 :http://repo1.maven.org/maven2/
2. 私服 :一般公司在用,公司擁有自己的一些工具包,無法公開到公共庫,則需要把這些包放到公司的倉庫中,供公司開發(fā)使用。
3. 其它 :其他可以互聯(lián)網(wǎng)公共訪問maven repository,例如 jboss repository等
1. Mirror
mirror相當于一個攔截器,它會攔截maven對remote repository的相關請求,把請求里的remote repository地址,重定向到mirror里配置的地址。
原理如下圖:
BRepository 這里id代標鏡像名稱。
http://B B倉庫的url地址。
A 表示所有訪問A倉庫的,都會被重定向到B倉庫去。
我們稱B為A的鏡像,也就是A倉庫有的包,B倉庫都有(不然還不如不配)。
下面是阿里云的鏡像配置:
<mirror> <!--該鏡像的唯一標識符。id用來區(qū)分不同的mirror元素。 --> <id>planetmirror.com</id> <!--鏡像名稱 --> <name>aliyun</name> <!--該鏡像的URL。構建系統(tǒng)會優(yōu)先考慮使用該URL,而非使用默認的服務器URL。 --> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <!--被鏡像的服務器的id。例如,如果我們要設置了一個Maven中央倉庫(http://repo1.maven.org/maven2)的鏡像,就需要將該元素設置成 central。這必須和中央倉庫的id central完全一致。--> <mirrorOf>central</mirrorOf> </mirror>
可以看出,阿里云做為了中央倉庫的鏡像,具體的配置本文不再敘述。
那么上面兩點和題目有什么關系呢?
我們可以知道中央倉庫雖然很方便,但是身處國內(nèi)人開發(fā)人員,在下載依賴的時候經(jīng)常遇到7~8KB的下載速度,無疑給開發(fā)帶來了極大的痛苦,而使用阿里云等其它鏡像,可以大大加快依賴包的下載速度,還沒有配置的鏡像的你,趕緊配置一波吧。
這里介紹一下快速找到和修改setting,xml文件的方法
1.第一
2. 第二
查看和修改setting.xml 文件
第一 在項目上點擊右鍵
具體的配置
第二 profile的勾選
在實際的項目中,項目開發(fā)被經(jīng)常被分為開發(fā)版本,測試版本,發(fā)布版本。而這三個項目版本為了方便開發(fā)和測試,項目里面的會有很多不同的配置,比如數(shù)據(jù)庫的配置,中間件redis的配置等等。通過profile文件,我們可以通過簡單的勾選來確定項目使用那些配置和那些包,當然profile還有更靈活的運用,讀者可以自行百度。所以如果你沒正確勾選profile,項目的有些包是無法下載的。或者你會遇到,依賴包明明就有,但是項目里面卻無法掃描到jar里面文件的問題(這個問題,很常見不過基本是一些小問題,比如“未刷新”和”根文件的選擇錯誤“等)。
當你剛入新項目組的時候,一定要問清楚鏡像的配置和profile的勾選問題,當然profile是可以在setting文件里面進行配置的。
第三 刷新maven
總結
對于后臺項目的啟動,在實際過程中還有很多的問題,剛入職的同學千萬不要傻傻的自行百度,我們除了一些基本問題排查之外,更多的時候需要詢問項目組的開發(fā)人員,畢竟有些配置的錯誤你找了半天,可能別人一眼就搞定了,當然還可以是pom文件的沖突問題,這里不再詳細介紹。
相關文章
SpringMVC4.3解析器HandlerMethodArgumentResolver接口源碼
這篇文章主要為大家介紹了SpringMVC4.3解析器HandlerMethodArgumentResolver接口源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09SpringBoot使用knife4j進行在線接口調(diào)試
這篇文章主要介紹了SpringBoot使用knife4j進行在線接口調(diào)試,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09java 遍歷request中的所有表單數(shù)據(jù)的實例代碼
下面小編就為大家?guī)硪黄猨ava 遍歷request中的所有表單數(shù)據(jù)的實例代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09