<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    maven3實戰之倉庫(遠程倉庫的配置)

    maven3實戰之倉庫(遠程倉庫的配置)

    ----------

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

     

    Xml代碼  收藏代碼
    1. <project>  
    2.   ...  
    3.   <repositories>  
    4.     <repository>  
    5.       <id>jboss</id>  
    6.       <name>JBoss Repository</name>  
    7.       <url>http://repository.jboss.com/maven2/</url>  
    8.       <releases>  
    9.         <enabled>true</enabled>  
    10.       </releases>  
    11.     </repository>  
    12.     <snapshots>  
    13.       <enabled>false</enabled>  
    14.     </snapshots>  
    15.     <layout>default</layout>  
    16.   </repositories>  
    17.   ...  
    18. </project>  

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

    該例配置中的releases和snapshots元素比較重要,它們用來控制Maven對于發布版構件和快照版構件的下載。該例中releases的enabled值為true,表示開啟JBoss倉庫的發布版本下載支持,而snapshots的enabled值為false,表示關閉JBoss倉庫的快照版本的下載支持該例中的layout元素值default表示倉庫的布局是Maven2及Maven3的默認布局,而不是Maven1的布局

    對于releases和snapshots來說,除了enabled,它們還包含另外兩個子元素updatePolicy和checksumPolicy:

     

    Xml代碼  收藏代碼
    1. <snapshots>  
    2.   <enabled>true</enabled>  
    3.   <updatePolicy>daily</updatePolicy>  
    4.   <checksumPolicy>ignore</checksumPolicy>  
    5. </snapshots>  

    元素updatePolicy用來配置Maven從遠程倉庫檢查更新的頻率,默認的值是daily,表示Maven每天檢查一次。其他可用的值包括:never---從不檢查更新;always---每次構建都檢查更新;interval:X---每隔X分鐘檢查一次更新(X為任意整數)。

    元素checksumPolicy用來配置Maven檢查檢驗和文件的策略。當構件被部署到Maven倉庫中時,會同時部署對應的校驗和文件。在下載構件的時候,Maven會驗證校驗和文件,如果校驗和驗證失敗,怎么辦?當checksumPolicy的值為默認的warn時,Maven會在執行構建時輸出警告信息,其他可用的值包括:fail---Maven遇到校驗和錯誤就讓構建失敗;ignore---使用Maven完全忽略校驗和錯誤

     

    1.遠程倉庫的認證

    大部分遠程倉庫無須認證就可以訪問,但有時候出于安全方面的考慮,我們需要提認證信息才能訪問一些遠程倉庫。例如,組織內部有一個Maven倉庫服務器,該服務器為每個項目都提供獨立的Maven倉庫,為了防止非法的倉庫訪問,管理員為每個倉庫提供了一組用戶名級密碼。這時,為了能讓Maven訪問倉庫內容,就需要配置認證信息。

    配置認證信息和配置倉庫信息不同,倉庫信息可以直接配置在POM文件中,但是認證信息必須配置在settings.xml文件中。這是因為POM往往是被提交到代碼倉庫中供所有成員訪問的,而settings.xml一般只放在本機。因此,settings.xml中配置認證信息更為安全。假設需要為一個id為my-proj的倉庫配置認證信息,編輯settings.xml文件見代碼清單: 

     

    Xml代碼  收藏代碼
    1. <settings>  
    2.   ...  
    3.   <servers>  
    4.     <server>  
    5.       <id>my-proj</id>  
    6.       <username>repo-user</username>  
    7.       <password>repo-pwd</password>  
    8.     </server>  
    9.   </servers>  
    10.   ...  
    11. </settings>  

    Maven使用settings.xml文件中并不顯而易見的servers元素及其server子元素配置倉庫認證信息。上例中,倉庫的認證用戶名為repo-user,認證密碼為repo-pwd。這里的關鍵是id元素,settings.xml中server元素的id必須與POM中需要認證的repository元素的id完全一致。換句話說,正是這個Id將認證信息與倉庫配置聯系在了一起。

     

    2.部署至遠程倉庫

    私服的一大作用是部署第三方構件,包括組織內部生成的構件以及一些無法從外部倉庫直接獲取的構件。無論是日常開發中生成的構件,還是正式版本發布的構件,都需要部署到倉庫中,供其他團隊成員使用。

    Maven除了能對項目進行編譯、測試、打包之外,還能將項目生成的構建部署到倉庫中。首先,需要編輯項目的pom.xml文件。配置distributionManagement元素,見代碼:

    Xml代碼  收藏代碼
    1. <project>  
    2.   ...  
    3.   <destributionManagement>  
    4.     <repository>  
    5.       <id>proj-releases</id>  
    6.       <name>Proj Release Repository</name>  
    7.       <url>http://192.168.1.100/content/repositories/proj-releases</url>  
    8.     </repository>  
    9.     <snapshotRepository>  
    10.       <id>proj-snapshots</id>  
    11.       <name>Proj Snapshot Repository</name>  
    12.       <url>http://192.168.1.100/content/repositories/proj-snapshots</url>  
    13.     </snapshotRepository>  
    14.   </destributionManagement>  
    15.   ...  
    16. </project>  

    distributionManagement包含repository和snapshotRepository子元素,前者表示發布版本構件的倉庫,后者表示快照版本的倉庫。這兩個元素下都需要配置id、name和url,id為該遠程倉庫的唯一標識,name是為了方便人閱讀,關鍵的url表示該倉庫的地址。

    往遠程倉庫部署構件的時候,往往需要認證。就是需要在settings.xml中創建一個server元素,其id與倉庫的id匹配,并配置正確的認證信息。不論遠程倉庫下載構件,還是部署構件至遠程倉庫,當需要認證的時候,配置的方式是一樣的。配置正確后,在命令行運行mvn clean deploy,Maven就會將項目構建輸出的構件部署到配置對應的遠程倉庫,如果項目當前的版本是快照版本,則部署到快照版本倉庫地址,否則就部署到發布版本倉庫地址。

    posted on 2014-03-25 17:00 順其自然EVO 閱讀(651) 評論(0)  編輯  收藏 所屬分類: maven

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品色播一区二区| 亚洲午夜无码久久久久小说| 一个人看的www在线观看免费| www成人免费观看网站| 婷婷国产偷v国产偷v亚洲| 中文字幕在线观看亚洲视频| 久久久久亚洲AV无码永不| 在线观看亚洲天天一三视| 亚洲国产成人久久综合一区77| 免费的涩涩视频在线播放| 在线观看人成网站深夜免费| 亚洲人成网站免费播放| 久九九精品免费视频| 丁香花免费完整高清观看| 最近免费字幕中文大全视频| 一个人免费播放在线视频看片| 97在线视频免费| 一本岛高清v不卡免费一三区| 5g影院5g天天爽永久免费影院| 免费h片在线观看网址最新| 亚洲精品视频在线观看免费| 国产91免费在线观看| 又粗又黄又猛又爽大片免费 | 亚洲午夜精品一区二区公牛电影院 | 成年女人免费视频播放77777| 亚洲国产91精品无码专区| 亚洲国产日韩精品| 亚洲日韩中文字幕| 亚洲成AV人片在线播放无码| 亚洲制服中文字幕第一区| 亚洲熟女综合一区二区三区| 国产精品亚洲va在线观看| 成人黄页网站免费观看大全| 亚洲国产成人久久综合一| 国产一级高青免费| 免费无码看av的网站| 亚洲一级二级三级不卡| 国产精品亚洲а∨无码播放麻豆 | 亚洲精品高清国产一久久| 亚洲国产精品嫩草影院| 免费观看美女用震蛋喷水的视频|