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

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

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

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

    maven3實(shí)戰(zhàn)之倉(cāng)庫(kù)(遠(yuǎn)程倉(cāng)庫(kù)的配置)

    maven3實(shí)戰(zhàn)之倉(cāng)庫(kù)(遠(yuǎn)程倉(cāng)庫(kù)的配置)

    ----------

    在很多情況下,默認(rèn)的中央倉(cāng)庫(kù)無(wú)法滿(mǎn)足項(xiàng)目的需求,可能項(xiàng)目需要的構(gòu)件存在于另外一個(gè)遠(yuǎn)程倉(cāng)庫(kù)中,如:JBoss,Maven倉(cāng)庫(kù)。這時(shí),可以在POM中配置該倉(cāng)庫(kù),見(jiàn)代碼請(qǐng)單:

     

    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子元素聲明一個(gè)或者多個(gè)遠(yuǎn)程倉(cāng)庫(kù)。該例中聲明了一個(gè)id為jboss,名稱(chēng)為JBoss Repository的倉(cāng)庫(kù)。任何一個(gè)倉(cāng)庫(kù)聲明的id必須是唯一的,尤其需要注意的是,maven自帶的中央倉(cāng)庫(kù)使用的id為central,如果其他的倉(cāng)庫(kù)聲明也使用該id,就會(huì)覆蓋中央倉(cāng)庫(kù)的配置。該配置中的url值指向了倉(cāng)庫(kù)的地址,一般來(lái)說(shuō),該地址都基于http協(xié)議,maven用戶(hù)都可以在瀏覽器中打開(kāi)倉(cāng)庫(kù)地址瀏覽構(gòu)件。

    該例配置中的releases和snapshots元素比較重要,它們用來(lái)控制Maven對(duì)于發(fā)布版構(gòu)件和快照版構(gòu)件的下載。該例中releases的enabled值為true,表示開(kāi)啟JBoss倉(cāng)庫(kù)的發(fā)布版本下載支持,而snapshots的enabled值為false,表示關(guān)閉JBoss倉(cāng)庫(kù)的快照版本的下載支持。該例中的layout元素值default表示倉(cāng)庫(kù)的布局是Maven2及Maven3的默認(rèn)布局,而不是Maven1的布局

    對(duì)于releases和snapshots來(lái)說(shuō),除了enabled,它們還包含另外兩個(gè)子元素updatePolicy和checksumPolicy:

     

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

    元素updatePolicy用來(lái)配置Maven從遠(yuǎn)程倉(cāng)庫(kù)檢查更新的頻率,默認(rèn)的值是daily,表示Maven每天檢查一次。其他可用的值包括:never---從不檢查更新;always---每次構(gòu)建都檢查更新;interval:X---每隔X分鐘檢查一次更新(X為任意整數(shù))。

    元素checksumPolicy用來(lái)配置Maven檢查檢驗(yàn)和文件的策略。當(dāng)構(gòu)件被部署到Maven倉(cāng)庫(kù)中時(shí),會(huì)同時(shí)部署對(duì)應(yīng)的校驗(yàn)和文件。在下載構(gòu)件的時(shí)候,Maven會(huì)驗(yàn)證校驗(yàn)和文件,如果校驗(yàn)和驗(yàn)證失敗,怎么辦?當(dāng)checksumPolicy的值為默認(rèn)的warn時(shí),Maven會(huì)在執(zhí)行構(gòu)建時(shí)輸出警告信息,其他可用的值包括:fail---Maven遇到校驗(yàn)和錯(cuò)誤就讓構(gòu)建失敗;ignore---使用Maven完全忽略校驗(yàn)和錯(cuò)誤。

     

    1.遠(yuǎn)程倉(cāng)庫(kù)的認(rèn)證

    大部分遠(yuǎn)程倉(cāng)庫(kù)無(wú)須認(rèn)證就可以訪問(wèn),但有時(shí)候出于安全方面的考慮,我們需要提認(rèn)證信息才能訪問(wèn)一些遠(yuǎn)程倉(cāng)庫(kù)。例如,組織內(nèi)部有一個(gè)Maven倉(cāng)庫(kù)服務(wù)器,該服務(wù)器為每個(gè)項(xiàng)目都提供獨(dú)立的Maven倉(cāng)庫(kù),為了防止非法的倉(cāng)庫(kù)訪問(wèn),管理員為每個(gè)倉(cāng)庫(kù)提供了一組用戶(hù)名級(jí)密碼。這時(shí),為了能讓Maven訪問(wèn)倉(cāng)庫(kù)內(nèi)容,就需要配置認(rèn)證信息。

    配置認(rèn)證信息和配置倉(cāng)庫(kù)信息不同,倉(cāng)庫(kù)信息可以直接配置在POM文件中,但是認(rèn)證信息必須配置在settings.xml文件中。這是因?yàn)镻OM往往是被提交到代碼倉(cāng)庫(kù)中供所有成員訪問(wèn)的,而settings.xml一般只放在本機(jī)。因此,settings.xml中配置認(rèn)證信息更為安全。假設(shè)需要為一個(gè)id為my-proj的倉(cāng)庫(kù)配置認(rèn)證信息,編輯settings.xml文件見(jiàn)代碼清單: 

     

    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文件中并不顯而易見(jiàn)的servers元素及其server子元素配置倉(cāng)庫(kù)認(rèn)證信息。上例中,倉(cāng)庫(kù)的認(rèn)證用戶(hù)名為repo-user,認(rèn)證密碼為repo-pwd。這里的關(guān)鍵是id元素,settings.xml中server元素的id必須與POM中需要認(rèn)證的repository元素的id完全一致。換句話(huà)說(shuō),正是這個(gè)Id將認(rèn)證信息與倉(cāng)庫(kù)配置聯(lián)系在了一起。

     

    2.部署至遠(yuǎn)程倉(cāng)庫(kù)

    私服的一大作用是部署第三方構(gòu)件,包括組織內(nèi)部生成的構(gòu)件以及一些無(wú)法從外部倉(cāng)庫(kù)直接獲取的構(gòu)件。無(wú)論是日常開(kāi)發(fā)中生成的構(gòu)件,還是正式版本發(fā)布的構(gòu)件,都需要部署到倉(cāng)庫(kù)中,供其他團(tuán)隊(duì)成員使用。

    Maven除了能對(duì)項(xiàng)目進(jìn)行編譯、測(cè)試、打包之外,還能將項(xiàng)目生成的構(gòu)建部署到倉(cāng)庫(kù)中。首先,需要編輯項(xiàng)目的pom.xml文件。配置distributionManagement元素,見(jiàn)代碼:

    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子元素,前者表示發(fā)布版本構(gòu)件的倉(cāng)庫(kù),后者表示快照版本的倉(cāng)庫(kù)。這兩個(gè)元素下都需要配置id、name和url,id為該遠(yuǎn)程倉(cāng)庫(kù)的唯一標(biāo)識(shí),name是為了方便人閱讀,關(guān)鍵的url表示該倉(cāng)庫(kù)的地址。

    往遠(yuǎn)程倉(cāng)庫(kù)部署構(gòu)件的時(shí)候,往往需要認(rèn)證。就是需要在settings.xml中創(chuàng)建一個(gè)server元素,其id與倉(cāng)庫(kù)的id匹配,并配置正確的認(rèn)證信息。不論遠(yuǎn)程倉(cāng)庫(kù)下載構(gòu)件,還是部署構(gòu)件至遠(yuǎn)程倉(cāng)庫(kù),當(dāng)需要認(rèn)證的時(shí)候,配置的方式是一樣的。配置正確后,在命令行運(yùn)行mvn clean deploy,Maven就會(huì)將項(xiàng)目構(gòu)建輸出的構(gòu)件部署到配置對(duì)應(yīng)的遠(yuǎn)程倉(cāng)庫(kù),如果項(xiàng)目當(dāng)前的版本是快照版本,則部署到快照版本倉(cāng)庫(kù)地址,否則就部署到發(fā)布版本倉(cāng)庫(kù)地址。

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

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

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(55)

    隨筆分類(lèi)

    隨筆檔案

    文章分類(lèi)

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 91亚洲国产成人久久精品| 免费亚洲视频在线观看| 午夜精品一区二区三区免费视频| 成人A毛片免费观看网站| 黄色网址免费在线观看| 日韩在线视频线视频免费网站| 精品免费AV一区二区三区| 爱情岛亚洲论坛在线观看| 国产天堂亚洲国产碰碰| 一区二区三区在线免费观看视频| 午夜不卡AV免费| 中文字幕无线码免费人妻| 13小箩利洗澡无码视频网站免费| 男人j进入女人j内部免费网站| 亚洲视频免费在线观看| 国产大片免费网站不卡美女 | 亚洲系列中文字幕| 亚洲国产精品人久久电影| 亚洲成人黄色在线| 国产精品亚洲专区在线观看| 亚洲人成网站免费播放| 成a人片亚洲日本久久| 成人a毛片免费视频观看| 在线观看免费无码视频| 91大神免费观看| 永久免费的网站在线观看| 日本免费v片一二三区| 亚洲精品国产福利一二区| 国产精品亚洲片在线| 亚洲国产精品张柏芝在线观看| 亚洲国产精品99久久久久久| h视频免费高清在线观看| 久久精品免费视频观看| 久九九精品免费视频| 四虎AV永久在线精品免费观看| 国产AV无码专区亚洲AV手机麻豆| 亚洲国产一区在线| 无人在线直播免费观看| 国产大片51精品免费观看| 久久国产亚洲精品麻豆| 亚洲不卡中文字幕|