maven配置

遠程倉庫的配置
在平時的開發(fā)中,我們往往不會使用默認的中央倉庫序目,默認的中央倉庫訪問的速度比較慢臂痕,訪問的人或許很多,有時候也無法滿足我們項目的需求宛琅,可能項目需要的某些構件中央倉庫中是沒有的刻蟹,而在其他遠程倉庫中有,如JBoss Maven倉庫嘿辟。這時舆瘪,可以在pom.xml中配置該倉庫,代碼如下:

     <repositories>
          <repository>
              <id>jboss</id>
              <name>JBoss Repository</name>
              <url>http://repository.jboss.com/maven2/</url>
              <releases>
                  <enabled>true</enabled>
                  <updatePolicy>daily</updatePolicy>
             </releases>
             <snapshots>
                 <enabled>false</enabled>
                 <checksumPolicy>warn</checksumPolicy>
             </snapshots>
             <layout>default</layout>
         </repository>
     </repositories>

repository:在repositories元素下红伦,可以使用repository子元素聲明一個或者多個遠程倉庫英古。
id:倉庫聲明的唯一id,尤其需要注意的是昙读,Maven自帶的中央倉庫使用的id為central召调,如果其他倉庫聲明也使用該id,就會覆蓋中央倉庫的配置蛮浑。
name:倉庫的名稱唠叛,讓我們直觀方便的知道倉庫是哪個,暫時沒發(fā)現(xiàn)其他太大的含義沮稚。
url:指向了倉庫的地址艺沼,一般來說,該地址都基于http協(xié)議蕴掏,Maven用戶都可以在瀏覽器中打開倉庫地址瀏覽構件障般。
releases和snapshots:用來控制Maven對于發(fā)布版構件和快照版構件的下載權限。需要注意的是enabled子元素盛杰,該例中releases的enabled值為true挽荡,表示開啟JBoss倉庫的發(fā)布版本下載支持,而snapshots的enabled值為false即供,表示關閉JBoss倉庫的快照版本的下載支持定拟。根據(jù)該配置,Maven只會從JBoss倉庫下載發(fā)布版的構件逗嫡,而不會下載快照版的構件青自。
layout:元素值default表示倉庫的布局是Maven2及Maven3的默認布局,而不是Maven1的布局祸穷⌒源基本不會用到Maven1的布局。
其他:對于releases和snapshots來說雷滚,除了enabled需曾,它們還包含另外兩個子元素updatePolicy和checksumPolicy。
元素updatePolicy用來配置Maven從遠處倉庫檢查更新的頻率,默認值是daily呆万,表示Maven每天檢查一次商源。其他可用的值包括:never-從不檢查更新;always-每次構建都檢查更新谋减;interval:X-每隔X分鐘檢查一次更新(X為任意整數(shù))牡彻。
元素checksumPolicy用來配置Maven檢查校驗和文件的策略。當構建被部署到Maven倉庫中時出爹,會同時部署對應的檢驗和文件庄吼。在下載構件的時候,Maven會驗證校驗和文件严就,如果校驗和驗證失敗总寻,當checksumPolicy的值為默認的warn時,Maven會在執(zhí)行構建時輸出警告信息梢为,其他可用的值包括:fail-Maven遇到校驗和錯誤就讓構建失斀バ小;ignore-使Maven完全忽略校驗和錯誤铸董。

2.遠程倉庫的認證
大部分公共的遠程倉庫無須認證就可以直接訪問祟印,但我們在平時的開發(fā)中往往會架設自己的Maven遠程倉庫低斋,出于安全方面的考慮被丧,我們需要提供認證信息才能訪問這樣的遠程倉庫轧房。配置認證信息和配置遠程倉庫不同阿迈,遠程倉庫可以直接在pom.xml中配置,但是認證信息必須配置在settings.xml文件中谍夭。這是因為pom往往是被提交到代碼倉庫中供所有成員訪問的,而settings.xml一般只存在于本機。因此夺艰,在settings.xml中配置認證信息更為安全。

<settings>
    ...
     <!--配置遠程倉庫認證信息-->
    <servers>
        <server>
           <id>releases</id>
             <username>admin</username>
            <password>admin123</password>
        </server>
     </servers>
     ...
 </settings>

上面代碼我們配置了一個id為releases的遠程倉庫認證信息沉衣。Maven使用settings.xml文件中的servers元素及其子元素server配置倉庫認證信息郁副。認證用戶名為admin,認證密碼為admin123豌习。這里的關鍵是id元素存谎,settings.xml中server元素的id必須與pom.xml中需要認證的repository元素的id完全一致。正是這個id將認證信息與倉庫配置聯(lián)系在了一起肥隆。

3.部署構件至遠程倉庫
我們使用自己的遠程倉庫的目的就是在遠程倉庫中部署我們自己項目的構件以及一些無法從外部倉庫直接獲取的構件既荚。這樣才能在開發(fā)時,供其他對團隊成員使用栋艳。
Maven除了能對項目進行編譯恰聘、測試、打包之外,還能將項目生成的構件部署到遠程倉庫中晴叨。首先凿宾,需要編輯項目的pom.xml文件。配置distributionManagement元素兼蕊,代碼如下:

 <distributionManagement>
         <repository>
              <id>releases</id>
              <name>public</name>
              <url>http://59.50.95.66:8081/nexus/content/repositories/releases</url>
          </repository>
          <snapshotRepository>
              <id>snapshots</id>
              <name>Snapshots</name>
             <url>http://59.50.95.66:8081/nexus/content/repositories/snapshots</url>
         </snapshotRepository>
 </distributionManagement>

distributionManagement包含repository和snapshotRepository子元素初厚,前者表示發(fā)布版本(穩(wěn)定版本)構件的倉庫,后者表示快照版本(開發(fā)測試版本)的倉庫孙技。這兩個元素都需要配置id产禾、name和url,id為遠程倉庫的唯一標識牵啦,name是為了方便人閱讀下愈,關鍵的url表示該倉庫的地址。
往遠程倉庫部署構件的時候蕾久,往往需要認證势似,配置認證的方式同上。
配置正確后僧著,運行命令mvn clean deploy履因,Maven就會將項目構建輸出的構件部署到配置對應的遠程倉庫,如果項目當前的版本是快照版本盹愚,則部署到快照版本的倉庫地址栅迄,否則就部署到發(fā)布版本的倉庫地址。
快照版本和發(fā)布版本的區(qū)別請自行上百度查閱資料皆怕。

4.配置遠程倉庫的鏡像
如果倉庫X可以提供倉庫Y存儲的所有內(nèi)容毅舆,那么就可以認為X是Y的一個鏡像。換句話說愈腾,任何一個可以從倉庫Y獲得的構件憋活,都能夠從它的鏡像中獲取。舉個例子虱黄,http://maven.oschina.net/content/groups/public/ 是中央倉庫http://repo1.maven.org/maven2/ 在中國的鏡像悦即,由于地理位置的因素,該鏡像往往能夠提供比中央倉庫更快的服務橱乱。因此辜梳,可以配置Maven使用該鏡像來替代中央倉庫。編輯settings.xml泳叠,代碼如下:

 <mirrors>
      <mirror>
       <id>maven.oschina.net</id>
       <name>maven mirror in China</name>
       <url>http://maven.oschina.net/content/groups/public/</url>
       <mirrorOf>central</mirrorOf>
     </mirror>
 </mirrors>

該例中作瞄,mirrorOf的值為central,表示該配置為中央倉庫的鏡像危纫,任何對于中央倉庫的請求都會轉(zhuǎn)至該鏡像宗挥,用戶也可以使用同樣的方法配置其他倉庫的鏡像节预。id表示鏡像的唯一標識符,name表示鏡像的名稱属韧,url表示鏡像的地址安拟。
關于鏡像的一個更為常見的用法是結(jié)合私服。由于私服可以代理任何外部的公共倉庫(包括中央倉庫)宵喂,因此糠赦,對于組織內(nèi)部的Maven用戶來說,使用一個私服地址就等于使用了所有需要的外部倉庫锅棕,這可以將配置集中到私服拙泽,從而簡化Maven本身的配置。在這種情況下裸燎,任何需要的構件都可以從私服獲得顾瞻,私服就是所有倉庫的鏡像。這時德绿,可以配置這樣的一個鏡像:

 <!--配置私服鏡像-->
 <mirrors> 
     <mirror>  
         <id>nexus</id>  
         <name>internal nexus repository</name>  
         <url>http://183.238.2.182:8081/nexus/content/groups/public/</url>  
         <mirrorOf>*</mirrorOf>  
     </mirror>  
 </mirrors>

該例中<mirrorOf>的值為星號荷荤,表示該配置是所有Maven倉庫的鏡像,任何對于遠程倉庫的請求都會被轉(zhuǎn)至http://183.238.2.182:8081/nexus/content/groups/public/移稳。如果該鏡像倉庫需要認證蕴纳,則配置一個id為nexus的認證信息即可。
需要注意的是个粱,由于鏡像倉庫完全屏蔽了被鏡像倉庫古毛,當鏡像倉庫不穩(wěn)定或者停止服務的時候,Maven仍將無法訪問被鏡像倉庫都许,因而將無法下載構件稻薇。

5.可用的Maven鏡像倉庫

     <mirror>    
        <id>repo2</id>    
        <mirrorOf>central</mirrorOf>    
        <name>Human Readable Name for this Mirror.</name>    
        <url>http://repo2.maven.org/maven2/</url>    
      </mirror>
  
      <mirror>    
        <id>ui</id>    
       <mirrorOf>central</mirrorOf>    
       <name>Human Readable Name for this Mirror.</name>    
      <url>http://uk.maven.org/maven2/</url>    
     </mirror>
 
   
     <mirror>    
       <id>ibiblio</id>    
       <mirrorOf>central</mirrorOf>    
       <name>Human Readable Name for this Mirror.</name>    
      <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>    
     </mirror>
 
     <mirror>    
       <id>jboss-public-repository-group</id>    
       <mirrorOf>central</mirrorOf>    
       <name>JBoss Public Repository Group</name>    
      <url>http://repository.jboss.org/nexus/content/groups/public</url>    
     </mirror>
 
     <mirror>    
       <id>JBossJBPM</id>   
     <mirrorOf>central</mirrorOf>   
     <name>JBossJBPM Repository</name>   
     <url>https://repository.jboss.org/nexus/content/repositories/releases/</url>  
     </mirror>

上面的倉庫經(jīng)過測試是可以訪問的。

6.倉庫搜索服務地址
Sonatype Nexus:https://repository.sonatype.org/
MVNrepository:http://mvnrepository.com/
關于依賴的搜索胶征,個人覺得這兩個是最好用的塞椎。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市弧烤,隨后出現(xiàn)的幾起案子忱屑,更是在濱河造成了極大的恐慌蹬敲,老刑警劉巖暇昂,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異伴嗡,居然都是意外死亡急波,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門瘪校,熙熙樓的掌柜王于貴愁眉苦臉地迎上來澄暮,“玉大人名段,你說我怎么就攤上這事∑茫” “怎么了伸辟?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長馍刮。 經(jīng)常有香客問我信夫,道長,這世上最難降的妖魔是什么卡啰? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任静稻,我火速辦了婚禮,結(jié)果婚禮上匈辱,老公的妹妹穿的比我還像新娘振湾。我一直安慰自己,他們只是感情好亡脸,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布押搪。 她就那樣靜靜地躺著,像睡著了一般浅碾。 火紅的嫁衣襯著肌膚如雪嵌言。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天及穗,我揣著相機與錄音摧茴,去河邊找鬼。 笑死埂陆,一個胖子當著我的面吹牛苛白,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播焚虱,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼购裙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鹃栽?” 一聲冷哼從身側(cè)響起躏率,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎民鼓,沒想到半個月后薇芝,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡丰嘉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年夯到,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饮亏。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡耍贾,死狀恐怖阅爽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情荐开,我是刑警寧澤付翁,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站晃听,受9級特大地震影響胆敞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜杂伟,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一移层、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赫粥,春花似錦观话、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至秦叛,卻和暖如春晦溪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挣跋。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工三圆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人避咆。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓舟肉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親查库。 傳聞我的和親對象是個殘疾皇子路媚,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容

  • |-1-更新內(nèi)容[6.從倉庫解析依賴的機制(重要)] 1Maven倉庫作用 倉庫用來存儲所有項目使用到構件,在ma...
    zlcook閱讀 6,032評論 0 25
  • 簡介 概述 Maven 是一個項目管理和整合工具 Maven 為開發(fā)者提供了一套完整的構建生命周期框架 Maven...
    閩越布衣閱讀 4,279評論 6 39
  • 首先私服是一種衍生出來的特殊的Maven遠程倉庫樊销,構建私服的好處請看3.5私服 可以幫助大家建立私服的倉庫管理軟件...
    zlcook閱讀 10,535評論 0 32
  • nexus安裝與使用: Windows安裝: 1整慎、下載https://www.sonatype.com/oss-t...
    kevin688閱讀 794評論 0 0
  • 2015年12月24日够吩,在陜理工的第三個平安夜比然,以前從沒覺得有什么的日子今天卻不同了!從23日的驚喜開始心里就感覺...
    七秒的記憶閱讀 164評論 0 0