Maven3實戰(zhàn)筆記04Maven的生命周期和插件_第1頁
Maven3實戰(zhàn)筆記04Maven的生命周期和插件_第2頁
Maven3實戰(zhàn)筆記04Maven的生命周期和插件_第3頁
Maven3實戰(zhàn)筆記04Maven的生命周期和插件_第4頁
免費預覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、1 / 5Maven3實戰(zhàn)筆記04Maven的生命周期和插件劉巖Email:1.Maven的生命周期Maven的生命周期其實是指它對所有的構(gòu)建過程進行了反復的推敲、反思,之后總結(jié)了一套高度抽象過程。這個過程是高度完善的、容易擴展的?;旧习隧椖康那謇?、初 始化、編譯、測試、打包、集成測試、驗證、部署、 、站點生成等步驟,幾乎所有的項目生命周期也就這樣。Maven項目周期是一個抽象的概念,這個概念性的東西意味著它并不做任何實質(zhì)性的事情,也就是說:它就像接口,只定義規(guī)范,具體細節(jié)它不管。具體的實現(xiàn)細節(jié)則交給了Maven的各個豐富的插件。Maven的插件機制有可能是跟Eclipse學的,基于一個

2、內(nèi)核core,定義一堆流程性的東西,讓插件去實現(xiàn)這些規(guī)范。其他組織也可以根據(jù)這套規(guī)范插入自己的東西,形成有特色化的、自定制的MaverioMaven有三套相互獨立的生命周期,分別是:clean、default、site。clean主要是清理項目、default是Maven最核心的的構(gòu)建項目、site是生成項目站點。每一個大的生命周期又分為很多個階段。后面的階段依賴于前面的階段,這點有點像Ant的構(gòu)建依賴。生命周期本身相互獨立,用戶可以僅僅調(diào)用生命周期的某一個階段,也就是說用戶調(diào)用了default周期的任何階段,并不會觸發(fā)clean周期以及site周期的任何事情。2.Maven生命周期階段詳解3

3、大生命周期蘊含著小小的階段,我們按順序看一下clean周期:pre-clean:準備清理clean :真正的清理工作post-clean:執(zhí)行清理后的一些后續(xù)工作default周期:validate:驗證initialize:初始化配置generate-sources: 生成源代碼編譯 目 錄process-sources:處理項目主資源文件,復制資源文件到outputclasspathgenerate-resources: 生成資源目錄process-resources:處理資源文件complie :編譯源代碼process-classes:處理編譯后文件generate-test-sour

4、ces: 生成測試 目錄process-test-sources:處理項目測試資源文件,復制測試資源文件到outputclasspathgenerate-test-resources:生成測試資源文件process-test-resources:處理測試資源文件test-compile:編譯測試代碼process-test-classes:處理測試代碼test:單元測試運行測試代碼prepare-package:打包前的準備package :將編譯好的代碼打包成為jar或者war或者ear等等2 / 5pre-integration-test:準備整體測試integration-test:整體

5、測試post-integration-test:為整體測試收尾verify:驗證install:安裝到本地Maven庫deploy :將最終包部署到遠程Maven倉庫site周期:pre-site:準備生成站點site:生成站點及文檔post-site:站點收尾site-deploy:將生成的站點發(fā)布到服務(wù)器上比如說在命令行執(zhí)行了mvn clean就是執(zhí)行到clean周期的clean階段。也就是說實際執(zhí)行了pre-clean階段與clean階段。mvn deploy就是執(zhí)行了整個default生命周期mvn clean deploy site-deploy這個就是執(zhí)行了clean周期的前兩個階

6、段、default周期的所有階段、site周期的所有 階段。3. Maven的插件機制之前我們就說了Maven的生命周期僅僅是個抽象的標準,不干實事的,真正干事的人藏在了幕后,就是Maven插件。插件本身為了能夠代碼復用,往往一個插件實現(xiàn)了很多功 能,這個如果我們做過Eclipse插件開發(fā)的人也許更清楚,比如一個Eclipse的SVN插件,即實現(xiàn)了可以查看遠程SVN源庫的信息,也可以下載遠程代碼,還可以上傳代碼。這實際上是3個功能,而由一個jar實現(xiàn)。在Maven中,管這個叫做“目標”。比如maven-dependency-plugin基于項目依賴實現(xiàn)了很多事情,分析依賴、列出依賴樹、分析依賴

7、來源等等。每個功能對應(yīng)著一個插件的目標,插件的目標越多,插件的功能越多。比如mvn dependency:analyze就是使用maven-dependency-plugin插件的analyze目標,分析項目的依賴。WARNING Unused declared dependencies found:WARNING org.springframework:spring-core:jar:2.5.6:compileWARNING org.springframework:spring-beans:jar:2.5.6:compileMaven的生命周期與Maven插件是項目綁定的,Maven默認地將

8、一些默認插件的目標與Maven的生命周期維系在了一起,比如default的compile這個階段就是和maven-compiler-plugin這個插件的compile目標維系著不可分割的關(guān)系。前者是領(lǐng)導,復雜發(fā)號施令,指定規(guī)則,后者是小兵,專門根據(jù)任務(wù)干活兒的人。為了不讓用戶不用 任何配置就能進行一般程度的項目構(gòu)建,Maven默認給自己生命周期的核心階段綁定了自己的插件。clean如下:生命周期階段插件目標pre-clean3 / 5cleanmaven-clean-plugin:cleanpost-cleansite如下:生命周期階段插件目標pre-sitesitemaven-site-p

9、lugin:sitepost-sitesite-deploymaven-site-plugin:deploy最麻煩的就是最核心的default生命周期階段插件目標process-resourcesmaven-resources-plugin:resourcescompilemaven-compiler-pugin:compileprocess-test-resourcesmaven-resources-plugin:testResourcestest-compilemaven-compiler-plugin:testCompiletestmaven-surefire-plugin:testCo

10、mpilepackagemaven-jar-plugin:jarinstallmaven-install-plugin:installdeploymaven-deploy-plugin:deploy其他沒綁定插件的就是說沒有什么實際行為。在我們自己的項目中綁定插件,比如在pom.xml內(nèi)容添加如下內(nèi)容src/main/resource org.apache.maven.pluginsmaven-source-plugin2.1.1 buildSource verify jar-no-fork false 4 / 5之后執(zhí)行命令mvn verify看到輸出文件夾就包含了我們的源代碼source的

11、jar。這個打包源代碼的目標”被綁定到了default周期的verify執(zhí)行。還有一點就是有些插件一旦寫上了pom.xml會有默認的綁定周期,比如就拿以上插件說事,如果將verify 去掉,執(zhí)行mvn package源代碼依然輸出,其實它默認適合default周期的package階段綁定的。Goals代表該插 件的某些目標(功能)。插件還能進行全局性質(zhì)的參數(shù)配置,參數(shù)是什么就不用多說了吧,大家接觸linux的都知道吧。Configuration就是配置參數(shù)的。org.apache.maven.plugins maven-compiler-plugin2.1 1.5 4. Maven插件的詳細信

12、息如果想獲取插件的詳細信息,一種途徑就是通過在線官網(wǎng)查詢(google一下就知道了), 一種就是利用它的另一個插件,maven-help-plugin。比如在命令行輸入如下mvn help:describe -D plugin=org.apache.maven.plugins:maven-compiler-plugin:2.1效果如下,顯示了一些插件的信息Name: Maven Compiler PluginDescription: The Compiler Plugin is used to compile the sources of your project.Group Id: org.

13、apache.maven.pluginsArtifact Id: maven-compiler-pluginVersion: 2.1Goal Prefix: compilerThis plugin has 3 goals:compiler:compileDescription: Compiles application sourcescompiler:helpDescription: Display help information on maven-compiler-plugin.Callmvn compiler:help -Ddetail=true -Dgoal= to display parameter piler:testCompileDescription: Compiles application test sources.For more information, run mvn help:describe . -Ddetail需要注意的就是Goal Prefix: compiler這里,是代表該插件的目標前綴寫法,我稱之5 / 5mvn compiler:co

溫馨提示

  • 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

提交評論