




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 /5Maven3實戰(zhàn)筆記04Maven的生命周期和插件 #/5 /5劉巖Email: HYPERLINK mailto:1.Maven00000Maven的生命周期其實是指它對所有的構(gòu)建過程進行了反復(fù)的推敲、反思,之后總結(jié)了一套高度抽象過程。這個過程是高度完善的、容易擴展的。基本上包含了項目的清理、初始化、編譯、測試、打包、集成測試、驗證、部署、站點生成等步驟,幾乎所有的項目生命周期也就這樣。Maven項目周期是一個抽象的概念,這個概念性的東西意味著它并不做任何實質(zhì)性的事情,也就是說:它就像接口,只定義規(guī)范,具體細節(jié)它不管。具體的實現(xiàn)細節(jié)則交給了Maven的各個豐富的插件。MavenO插件機
2、制有可能是跟Eclipse學(xué)0,基于一個內(nèi)核core,定義一堆流程性的東西,讓插件去實現(xiàn)這些規(guī)范。其他組織也可以根據(jù)這套規(guī)范插入自己0東西,形成有特色化0、自定制0Maven。Maven有三套相互獨立的生命周期,分別是:clean、default、site。clean主要是清理項目、default是Maven最核心的的構(gòu)建項目、site是生成項目站點。每一個大的生命周期又分為很多個階段。后面的階段依賴于前面的階段,這點有點像Ant的構(gòu)建依賴。生命周期本身相互獨立,用戶可以僅僅調(diào)用生命周期0某一個階段,也就是說用戶調(diào)用了default周期的任何階段,并不會觸發(fā)2.Maven生命周期階段詳解3大生
3、命周期蘊含著小小0階段,我們按順序看一下clean周期:pre-clean:準備清理clean:真正的清理工作post-clean:執(zhí)行清理后的一些后續(xù)工作default周期:validate:驗證initialize:初始化配置generate-sources:生成源代碼編譯目錄process-sources:處理項目主資源文件,復(fù)制資源文件到generate-resources:生成資源目錄process-resources:處理資源文件complie:編譯源代碼process-classes:處理編譯后文件generate-test-sources:生成測試目錄process-test-
4、sources:處理項目測試資源文件,generate-test-resources:生成測試資源文件process-test-resources:處理測試資源文件test-compile:編譯測試代碼process-test-classes:處理測試代碼test:單元測試運行測試代碼prepare-package:打包前的準備package:將編譯好0代碼打包成為jar或者clean周期以及sit6周期的任何事情。outputclasspath復(fù)制測試資源文件到outputclasspathwar或者ear等等preintegrationtest:準備整體測試integration-test
5、:整體測試post-integration-test:為整體測試收尾verify:驗證install:安裝到本地Maven庫deploy:將最終包部署到遠程MavenDDsite周期:pre-site:準備生成站點site:生成站點及文檔post-site:站點收尾site-deploy:將生成的站點發(fā)布到服務(wù)器上比如說在命令行執(zhí)行了mvncleanpre-clean階段與clean階就是執(zhí)行到clean000clean階段。也就是說實際執(zhí)行了段。mvndeploy就是執(zhí)行了整個default生命周期mvncleandeploysite-deploy這個就是執(zhí)行了clean周期的前兩個階段、d
6、efault周期的所有階段、site000003.階段。Maven的插件機制之前我們就說了Maven的生命周期僅僅是個抽象的標準,不干實事的,真正干事的人藏在了幕后,就是Maven插件。插件本身為了能夠代碼復(fù)用,往往一個插件實現(xiàn)了很多功能,這個如果我們做過件,即實現(xiàn)了可以查看遠程Eclipse插件開發(fā)的人也許更清楚,比如一個SVN資源庫的信息,也可以下載遠程代碼,還可以上傳代碼。Eclipse0SVN插這實際上是3個功能,而由一個jar實現(xiàn)。在Maven中,管這個叫做“目標”。比如 /5分析依賴、列出依賴樹、分析maven-dependency-plugin基于項目依賴實現(xiàn)了很多事情,依賴來源
7、等等。每個功能對應(yīng)著一個插件0目標,插件0目標越多,插件0功能越多。比如mvndependency:analyze就是使用maven-dependency-plugin插件的analyze目標,分析項目的依賴。WARNINGUnuseddeclareddependenciesfound:WARNINGorg.springframework:spring-core:jar:2.5.6:compileWARNINGorg.springframework:spring-beans:jar:2.5.6:compileMaven000000Maven插件是項目綁定0,Maven默認地將一些默認插件的目標
8、與Maven0生命00維系在了一起,比如default0compile這個階段就是和maven-compiler-plugin這個插件的compile目標維系著不可分割的關(guān)系。前者是領(lǐng)導(dǎo),復(fù)雜發(fā)號施令,指定規(guī)則,后者是小兵,專門根據(jù)任務(wù)干活兒0人。為了不讓用戶不用任何配置就能進行一般程度的項目構(gòu)建,Maven默認給自己生0000核心階段綁定了自己0插件。clean如下:0000階段插件目標pre-cleancleanmaven-clean-plugin:cleanpost-cleansite如下:生命周期階段插件目標pre-sitesitemavensiteplugin:sitepostsit
9、esitedeploymavensiteplugin:deploy最麻煩的就是最核心的default生命周期階段插件目標processresourcesmavenresourcesplugin:resourcescompilemavencompilerpugin:compileprocesstestresourcesmavenresourcesplugin:testResourcestestcompilemavencompilerplugin:testCompiletestmavensurefireplugin:testCompilepackagemavenjarplugin:jarinsta
10、llmaveninstallplugin:installdeploymavendeployplugin:deploy其他沒綁定插件的就是說沒有什么實際行為。在我們自己的項目中綁定插件,比如在pom.xml內(nèi)容添加如下內(nèi)容resourcessrc/main/resource/resourcesorg.apache.maven.pluginsmaven-source-plugin2.1.1buildSourceverifyjar-no-forkfalse之后執(zhí)行命令mvnverify看到輸出文件夾就包含了我們的源代碼source的jar。這個打包源代碼的“目標”被綁定到了default周期的ver
11、ifyDOD還有一點就是有些插件一旦寫上了pom.xml會有默認的綁定周期,比如就拿以上插件說事,如果將verify/phase去掉,執(zhí)行mvnpackage源代碼依然輸出,其實它默認適合default周期的package階段綁定的。Goals代表該插 #/5 /5linux的都件的某些目標(功能)插件還能進行全局性質(zhì)的參數(shù)配置,參數(shù)是什么就不用多說了吧,大家接觸知道吧。Configuration就是配置參數(shù)的。org.apache.maven.pluginsmaven-compiler-plugin2.11.54.Maven插件的詳細信息如果想獲取插件的詳細信息,一種途徑就是通過在線官網(wǎng)查叮
12、google一下就知道了),一種就是利用它的另一個插件,maven-help-plugin。比如在命令行輸入如下mvnhelp:describe-Dplugin=org.apache.maven.plugins:mavencompilerplugin:2.1效果如下,顯示了一些插件的信息Name:MavenCompilerPluginDescription:TheCompilerPluginisusedtocompilethesourcesofyourproject.GroupId:org.apache.maven.pluginsArtifactId:maven-compiler-plugin
13、Version:2.1GoalPrefix:compilerThispluginhas3goals:compiler:compileDescription:Compilesapplicationsourcescompiler:helpDescription:Displayhelpinformationonmaven-compiler-plugin.Callmvncompiler:help-Ddetail二trueDgoal二goal-piler:testCompileDescription:Compilesapplicationtestsources.Formoreinformation,runmvnhelp:describe.-Ddetail需要注意的就是GoalPrefix:compiler這里,是代表該插件的目標前綴寫法,我稱之為目標簡寫,也就是說你可以簡寫為mvncompiler:compile就
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年監(jiān)理考試-鐵路監(jiān)理工程師歷年參考題庫含答案解析(5套典型考題)
- 2025年環(huán)保知識生態(tài)建設(shè)知識競賽-林業(yè)知識競賽試題歷年參考題庫含答案解析(5套典型考題)
- 2025年建設(shè)工程質(zhì)量檢測人員-建設(shè)工程質(zhì)量檢測人員(建筑智能化)歷年參考題庫含答案解析(5套典型考題)
- 2025年大學(xué)試題(財經(jīng)商貿(mào))-商場知識歷年參考題庫含答案解析(5套典型考題)
- 2025年大學(xué)試題(計算機科學(xué))-計算機過程控制歷年參考題庫含答案解析(5套典型考題)
- 2025年大學(xué)試題(計算機科學(xué))-SolidWorks歷年參考題庫含答案解析(5套典型考題)
- 2025年大學(xué)試題(藝術(shù)學(xué))-版式設(shè)計歷年參考題庫含答案解析(5套典型考題)
- 2025年大學(xué)試題(管理類)-質(zhì)量管理與可靠性歷年參考題庫含答案解析(5套典型考題)
- 2025年大學(xué)試題(法學(xué))-獻血法歷年參考題庫含答案解析(5套典型考題)
- 2025年大學(xué)試題(工學(xué))-食品科學(xué)技術(shù)歷年參考題庫含答案解析(5套典型考題)
- 2025福建福州市鼓樓區(qū)國有資產(chǎn)投資發(fā)展集團有限公司副總經(jīng)理公開招聘1人筆試參考題庫附帶答案詳解(10套)
- 2025小紅書電商簡介
- 基于大數(shù)據(jù)的高速公路項目風(fēng)險預(yù)警與應(yīng)對模型-洞察及研究
- 起重機械指揮Q1證理論考試題(附答案)
- GB/T 2828.2-2008計數(shù)抽樣檢驗程序第2部分:按極限質(zhì)量(LQ)檢索的孤立批檢驗抽樣方案
- GB/T 1690-1992硫化橡膠耐液體試驗方法
- 精密驅(qū)動與傳動-以超聲電機為例
- 自力式調(diào)節(jié)閥技術(shù)培訓(xùn)課件
- 叉車隱患排查情況記錄表
- 維護手冊v00-地鐵3號線貫通道系統(tǒng)
- 心力衰竭心臟再同步(CRT)治療課件
評論
0/150
提交評論