maven培訓小課堂一_第1頁
maven培訓小課堂一_第2頁
maven培訓小課堂一_第3頁
maven培訓小課堂一_第4頁
maven培訓小課堂一_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

Maven小課堂(一()Maven:mirror和repository(五)repositories和pluginRepositories(六)settings.xml配置說明(含mavenoffline作用說明(一)服snapshot快照庫和release(二)Nexus(三)Maven:mirror和repositoryRepository(倉庫Maven倉庫主要有2ocarepostory:存放在本地磁盤的一個文件夾,例如,wndows上默認是C:\Users\{用戶名}\.m2\repostory Repository主要有3私服:內(nèi)網(wǎng)自建的mavenrepostory,其URL其他公共倉庫:其他可以互聯(lián)網(wǎng)公共訪問mavenrepostory,例如jbossrepostorymo相當于一個攔截器,它會攔截maveemoeesoy的相關請求,把請求里的emoeeosoy地址,重定向到mror里配置的地此時,BRepostory被稱為ARepostory<mrrorOf></mrrorOf>標簽里面放置的是要被鏡像的RepostoryID。為了滿足一些復雜的需求,MavenRepository與其實,mrror表示的是兩個Repostory之間的關系,在maven配置文件(settng.xm)里配置了 </mrrors>,即定義了兩個Repostory<mrror>.</mrror></mrrors>,讓B庫成為A庫的mrror,即可不用更改項目pom.xm里對于A如果該鏡像倉庫需要認證,則配置settng.xm中的<server></server>加速MavenPS:Maven如果不配置nexus私服的倉庫組,那么我們會在 配置文件里面定義多個倉庫,例如中央倉庫然后再配置mrror去攔截對應的nexu構(gòu)件下載,例如我們有中央倉庫central(Maen)、第三方倉庫(bo)、或者其他倉庫other等,那我們mirror可以配置攔截這些名字centra、bo、other等字眼,例如但是我們使用了nexu置即可,例如profileprofileprofe可以讓我們定義系列的配置信息,然后指定其激活條件。這樣我們就可以定義多個profe,然后每個profe對應不同的激活條件和配置信息,從而達到不同環(huán)境使用不同配置信息的效果。比如說,我們可以通過profe定義在jdk1.5以上使用套配置信息,在jdk1.5以下使用另外套配置信息;或者有時候我們可以通過操作系統(tǒng)的不同來使用不同的配置信息,比如wndows下是套信息,nux下又是另外 針對于特定項的profe配置我們可以定義在該項的pom.xm 安裝錄下的中,另種是定義在pom.xm當profe定義在settngs.xm中時意味著該profe是全局的,它會對所有項或者某用戶的所有項都產(chǎn)生作用。因為它是全局的,所以在settngs.xm中只能定義些相對而言范圍寬泛點的配置信息,比如遠程倉庫等。而些比較細致點的需要根據(jù)項的不同來定義的就需要定義在項的義在<propertes>里面的鍵值對可以在pom.xm中使用。<repostor<pugnRepostor<dependenc<pug<propert<dstrbut還有bud素下面的子素,主要包括:<defautGoa<fnaMaven給我們提供了多種不同的profe激活方式。比如我們可以使用-P參數(shù)顯示的激活個profe,也可以根據(jù)環(huán)境條件的設置讓它自動 先看下面Xm<d>profeTest1</<propert<heo>word</he</propert<actvat<actveByDefaut>true</actveByDefau</actvat<d>profeTest2</<propert<heo>andy</he</propertmvnpackagePprofeTest2的時候?qū)⒓せ頿rofeTest2,而這個時候profeTest1將不會被激活。們定義了如下兩個profeXm<d>profeTest1</<propert<heo>word</he</propert<d>profeTest2</<propert<heo>andy</he</propert么我們就可以在settngs.xm中定義actveProfes,具體定義如下:Xm<actveProf<actveProfe>profeTest1</actveProf</actveProf考慮這樣種情況,我們在actveProfes下同時定義了多個需要激活的profe。這里還拿上面的profe定義來舉例,我們定義了同時激活profeTest1和profeTest2。Xm<actveProf<actveProfe>profeTest1</actveProf<actveProfe>profeTest2</actveProf</actveProf從profeTest1和profeTest2我們可以看出它們共同定義了屬性heo。那么這個時候我在pom.xm中使用屬性heo的時候,它到底取的哪個值呢?是根據(jù)actveProfe定義的順序,后面的覆蓋前面的嗎?根據(jù)我的測試,答案是非也,它是根據(jù)profe定義的先后順序來進行使用-P參數(shù)顯示的激活個profXm代碼<d>profeTest1</<propert<heo>word</he</propert<d>profeTest2</<propert<heo>andy</he</propert那么當我們在進行Maven操作時就可以使用-P參數(shù)顯示的指定當前激活的是哪個profe了。比如我們需要在對項進行打包的時候使用d為profeTest1的profe,我們就可以這樣做:CmdCmd當前操作中該profe將不處于激活狀態(tài)。根據(jù)環(huán)境來激活profprofeprofe,也可以根據(jù)jdk版本的不同激活不同的profe,等等。Xm代碼<d>profeTest1</Xm代碼<d>profeTest1</根據(jù)操作系統(tǒng)來激活profeXm<d>profeTest1</<actvat<name>Wndows<famy>Wndows</fam<verson>5.1.2600</vers</actvat根據(jù)系統(tǒng)屬性來激活profeXm<d>profeTest1</<actvat<name>he<vaue>word</va</actvat當是下面的這種定義形式時,profeTest1將在指定了系統(tǒng)屬性heo,且其值為任意值的時候被激活。Xm代碼<d>profeTest1</<actvat<name>he</actvatXm代碼<d>profeTest1</<actvat<f</f</actvatXm代碼<d>profeTest1</<actvat<f<mssng>target</mss</f</actvat查看當前處于激活狀態(tài)的我們可以同時定義多個profe,那么在建立項的過程中,到底激活的是哪個profe呢?Maven激活狀態(tài)的profe都有哪些,這個指定就是mvnhep:actve-profes。Xm代碼<d>profeTest1</<actvat<f<mssng>target</mss</f</actvat<actveProf<actveProfe>profeTest1</actveProf</actveProf(五)repositories和pluginRepositories看下官方文檔的說明:Pluginarethemajortyofpugnsthatresdewthncentra.Theothertypeofartfactspugns.Mavenpugnsarethemsevesaspecatypeargumentfordongso).Inanycase,thestructureofthepluginRepositorieseementbockssmartotherepositories(六)settings.xml配置說明(含mavenoffline作用說明文件存放<?<?xmlveson=".0"encodng="UFoo<!<!Maven是否需要和用戶交互以獲得輸入如果Maven需要和用戶交互以獲得輸入,則設置成te,反之則應為false默認為t <nteactveMode>tue</nteact<!<!Maven是否需要使用plugnegst.l文件來管理插件版本如果需要Maven使用文件${usehm}mlugnegstxl來管理插件版本,則設為tue默認為false><usePlugnRegst>false</usePlugnRegst<!<!表示Maven是否需要在離線模式下運行如果構(gòu)建系統(tǒng)需要在離線模式下運行,則為tue,默認為false當由于網(wǎng)絡設置原因或者安全因素,構(gòu)建服務 <!<!d(goupd)d(goupd)的列表該元素包含plugnGoup組織d(goupd)當我們使用某個插件,并沒有在命令行為其提供組織d(goupd)的時候,Maven就會使用該列表默認情況下該列表包含了og.acmnlns和o.odhamo><plugnG<!plugn的組織d(goup <plugnGoup>oodhusoo<lugnG</plugnG<!<!用來配置不同的代理,多代理pofles可以應對筆記本或移動設備的工作環(huán)境:通過簡單的設置pofled>代理元素包含配置代理時需要的信息<pox代理的唯定義符,用來區(qū)分不同的代理元 <d>mpox</ ue則激活代理當我們聲明了組代理,而某個時候只需要激活個代理的時候,該元素就可以派上用><!代理的主機名協(xié)議://主機名:<!代理的端口協(xié)議://主機名:<! </pox<!鑒權(quán)密 <!<!為倉庫列表配置的下載鏡像列表高級設置請參閱鏡像設置 <mo<!給定倉庫的下載鏡 <mo<!該鏡像的唯標識 d用來區(qū)分不同的 o元 <d>planetmoo</<!鏡像名 <!該鏡像的URL構(gòu)建系統(tǒng)會優(yōu)先考慮使用該URL,而使用默認的服務器 <uwll <!被鏡像的服務器的d例如,如果我們要設置了個Maven中央倉庫(http://po.anpceg/maven2/)的鏡像,就需要將該元素設置成cental這必須和中央倉庫的dcental完全致><moOf>cental</mo</mo</molmloes,plugnRepostoes和popetes元素這里的pofle元素只包含這五個子元素是因為這里只關心構(gòu)建系統(tǒng)這個整體(這正是setts.ml文件的角色定位),而單獨的項目對象模型設置如果個settngs中的pofle被激活,它的值會覆蓋任何其它定義在POM中或者poflexl中的帶有相同d的pofle <pof<!根據(jù)環(huán)境參數(shù)來調(diào)整的構(gòu)件的配置<pof<!該配置的唯標識 <d>test</<!<!自動觸發(fā)pofle的條件邏輯Actvaton是pofle的開啟鑰匙如POM中的pofle樣,pofle的力量來自于它能夠在某些特定的環(huán)境中自動使用某些特定的值;這些環(huán)境通過actvaton元素指定actvaton元素并不是激活pofle的唯方式settngsl文件中的actvePofle元素可以包含pofle的dpofle也可以通過在命令行,使用P標記和逗號分隔的列表來顯式的激活(如,Ptest)><<actvat<!pofle默認是否激活的標識<!當匹配的jdk被檢測到,pofle被激活例如,.4激活JDK.4,.4.02,而!.4激活所有版本不是以.4開頭的 <!當匹配的操作系統(tǒng)屬性被檢測到,pofle被激活os元素可以定義些操作系統(tǒng)相關的屬 <!激活pofle的操作系統(tǒng)的名 <name>Wndows<!激活pofle的操作系統(tǒng)所屬家族(如'w <faml>Wndows</faml<!激活pofle的操作系統(tǒng)體系結(jié) <!激活pofle的操作系統(tǒng)版本<veson>5..2600</ves<!如果Maven(其值可以在POM中通過${name}引用),其擁有對應的name值,Pofle存在屬性名稱字段就會激活pofle,否則按區(qū)分大小寫方式匹配屬性值字段><popet<!激活pofle的屬性的名稱<!激活pofle的屬性的 </popet<!提供個文件名,通過檢測該文件的存在或不存在來激活poflemssng檢查文件是否存在,如果不存在則激活pofle另方,exsts則會檢查文件是否存在,如果存在則激活pofle><f<!如果指定的文件存在,則激活pof <exsts>${based}/fle2.popetes</ex<!如果指定的文件不存在,則激活pof <mssng>${based}/fle.popetes</mss</actvat<!<!對應pofle的擴展屬性列表Maven屬性和Ant中的屬性樣,可以用來存放些值這些值可以在POM中的任何地方使用標記${X}來使用,這里X是指屬性的名稱屬性有五種不同的形式,并都能在settngsml文件中訪問poject.x:指代了POM中對應的元素值例如:<poject><veson>.0</veson></poject>通過${poject.veson}獲得vesonsettngs.x指代了settnxl中對應元素的值例如:<settngs><offlne>false</offlne></settngs>${settngs.offlne}獲得offlne的值eeP5.x:在<popetes/>元素中,或者外部文件中設置,以${someVa}<popet</popetnote:如果該pofle被激活,則可以再POM中使用${use.><!<!<eposto><!包含需要連接到遠程倉庫的信 <eposto<!遠程倉庫唯標識<!遠程倉庫名 <!<!如何處理遠程倉庫里發(fā)布版本的下載<!tue或者false表示該倉庫是否為下載某種類型構(gòu)件(發(fā)布版,快照版)<!該元素指定更新發(fā)生的頻率Maven會比較本地POM和遠程POM的時間戳這里的選項是:alwas(直),dal(默認,每日),nteval:X(這里X是以分鐘為單位的時間間隔),或者neve(從不) <!當Maven驗證構(gòu)件校驗文件失敗時該怎么做gnoe(忽略),fal(失?。?,或者wan(警告 <!如何處理遠程倉庫里快照版本的下載有了eleases和snapshots這兩組配置,POM就可以在每個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論