https://www.cnblogs.com/duanxz/p/5210189.html
遠程倉庫
說到遠程倉庫先從 最核心的中央倉庫開始,中央倉庫是默認的遠程倉庫,maven在安裝的時候,自帶的就是中央倉庫的配置
在maven的聚合與繼承中我們說過,所有的maven項目都會繼承超級pom,具體的說,包含了下面配置的pom我們就稱之爲超級pom
<repositories> <repository> <id>central</id> <name>Central Repository</name> <url>http://repo.maven.apache.org/maven2</url> <layout>default</layout> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
中央倉庫包含了絕大多數流行的開源Java構件,以及源碼、作者信息、SCM、信息、許可證信息等。一般來說,簡單的Java項目依賴的構件都可
-------------------------------------------------------------------
.遠程倉庫的配置
在平時的開發中,我們往往不會使用默認的中央倉庫,默認的中央倉庫訪問的速度比較慢,訪問的人或許很多,有時候也無法滿足我們項目的需求,可能項目需要的某些構件中央倉庫中是沒有的,而在其他遠程倉庫中有,如JBoss Maven倉庫。這時,可以在pom.xml中配置該倉庫,代碼如下:
1 <!-- 配置遠程倉庫 --> 2 <repositories> 3 <repository> 4 <id>jboss</id> 5 <name>JBoss Repository</name> 6 <url>http://repository.jboss.com/maven2/</url> 7 <releases> 8 <enabled>true</enabled> 9 <updatePolicy>daily</updatePolicy> 10 </releases> 11 <snapshots> 12 <enabled>false</enabled> 13 <checksumPolicy>warn</checksumPolicy> 14 </snapshots> 15 <layout>default</layout> 16 </repository> 17 </repositories>
repository:在repositories元素下,可以使用repository子元素聲明一個或者多個遠程倉庫。
id:倉庫聲明的唯一id,尤其需要注意的是,Maven自帶的中央倉庫使用的id爲central,如果其他倉庫聲明也使用該id,就會覆蓋中央倉庫的配置。
name:倉庫的名稱,讓我們直觀方便的知道倉庫是哪個,暫時沒發現其他太大的含義。
url:指向了倉庫的地址,一般來說,該地址都基於http協議,Maven用戶都可以在瀏覽器中打開倉庫地址瀏覽構件。
releases和snapshots:用來控制Maven對於發佈版構件和快照版構件的下載權限。需要注意的是enabled子元素,該例中releases的enabled值爲true,表示開啓JBoss倉庫的發佈版本下載支持,而snapshots的enabled值爲false,表示關閉JBoss倉庫的快照版本的下載支持。根據該配置,Maven只會從JBoss倉庫下載發佈版的構件,而不會下載快照版的構件。
layout:元素值default表示倉庫的佈局是Maven2及Maven3的默認佈局,而不是Maven1的佈局。基本不會用到Maven1的佈局。
其他:對於releases和snapshots來說,除了enabled,它們還包含另外兩個子元素updatePolicy和checksumPolicy。
元素updatePolicy用來配置Maven從遠處倉庫檢查更新的頻率,默認值是daily,表示Maven每天檢查一次。其他可用的值包括:never-從不檢查更新;always-每次構建都檢查更新;interval:X-每隔X分鐘檢查一次更新(X爲任意整數)。
元素checksumPolicy用來配置Maven檢查校驗和文件的策略。當構建被部署到Maven倉庫中時,會同時部署對應的檢驗和文件。在下載構件的時候,Maven會驗證校驗和文件,如果校驗和驗證失敗,當checksumPolicy的值爲默認的warn時,Maven會在執行構建時輸出警告信息,其他可用的值包括:fail-Maven遇到校驗和錯誤就讓構建失敗;ignore-使Maven完全忽略校驗和錯誤。
遠程倉庫的認證
大部分公共的遠程倉庫無須認證就可以直接訪問,但我們在平時的開發中往往會架設自己的Maven遠程倉庫,出於安全方面的考慮,我們需要提供認證信息才能訪問這樣的遠程倉庫。配置認證信息和配置遠程倉庫不同,遠程倉庫可以直接在pom.xml中配置,但是認證信息必須配置在settings.xml文件中。這是因爲pom往往是被提交到代碼倉庫中供所有成員訪問的,而settings.xml一般只存在於本機。因此,在settings.xml中配置認證信息更爲安全。
1 <settings> 2 2 ... 3 3 <!--配置遠程倉庫認證信息--> 4 4 <servers> 5 5 <server> 6 6 <id>releases</id> 7 7 <username>admin</username> 8 8 <password>admin123</password> 9 9 </server> 10 10 </servers> 11 11 ... 12 12 </settings> 上面代碼我們配置了一個id爲releases的遠程倉庫認證信息。Maven使用settings.xml文件中的servers元素及其子元素server配置倉庫認證信息。認證用戶名爲admin,認證密碼爲admin123。這裏的關鍵是id元素,settings.xml中server元素的id必須與pom.xml中需要認證的repository元素的id完全一致。正是這個id將認證信息與倉庫配置聯繫在了一起。