讀古今文學網 > Maven實戰 > 6.4 遠程倉庫的配置 >

6.4 遠程倉庫的配置

在很多情況下,默認的中央倉庫無法滿足項目的需求,可能項目需要的構件存在於另外一個遠程倉庫中,如JBoss Maven倉庫。這時,可以在POM中配置該倉庫,見代碼清單6-2。

代碼清單6-2 配置POM使用JBoss Maven倉庫

在repositories元素下,可以使用repository子元素聲明一個或者多個遠程倉庫。該例中聲明了一個id為jboss,名稱為JBoss Repository的倉庫。任何一個倉庫聲明的id必須是唯一的,尤其需要注意的是,Maven自帶的中央倉庫使用的id為central,如果其他的倉庫聲明也使用該id,就會覆蓋中央倉庫的配置。該配置中的url值指向了倉庫的地址,一般來說,該地址都基於http協議,Maven用戶都可以在瀏覽器中打開倉庫地址瀏覽構件。

該例配置中的releases和snapshots元素比較重要,它們用來控制Maven對於發佈版構件和快照版構件的下載。關於快照版本,在第6.5節中會詳細解釋。這裡需要注意的是enabled子元素,該例中releases的enabled值為true,表示開啟JBoss倉庫的發佈版本下載支持,而snapshots的enabled值為false,表示關閉JBoss倉庫的快照版本的下載支持。因此,根據該配置,Maven只會從JBoss倉庫下載發佈版的構件,而不會下載快照版的構件。

該例中的layout元素值default表示倉庫的佈局是Maven 2及Maven 3的默認佈局,而不是Maven 1的佈局。

對於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完全忽略校驗和錯誤。