天天看點

mavne生命周期與插件

一: 生命周期與插件的關系:

maven項目在建構的過程中的所有建構步驟即為maven的生命周期,其包括項目的清理,初始化,編譯,測試,打包,內建測試,驗證,部署和站點生成等幾乎所有的步驟。而這些步驟都是由~.m2\repository\org\apache\maven\plugins中的maven插件完成的。

二: 三套生命周期

Maven有三套互相獨立的生命周期,分别是clean、default和site。每個生命周期包含一些階段(phase),階段是有順序的,後面的階段依賴于前面的階段。

1、clean生命周期:清理項目,包含三個phase。

1)pre-clean:執行清理前需要完成的工作

2)clean:清理上一次建構生成的檔案

3)post-clean:執行清理後需要完成的工作

2、default生命周期:建構項目,重要的phase如下。

1)validate:驗證工程是否正确,所有需要的資源是否可用。

2)compile:編譯項目的源代碼。

3)test:使用合适的單元測試架構來測試已編譯的源代碼。這些測試不需要已打包和布署。

4)Package:把已編譯的代碼打包成可釋出的格式,比如jar。

5)integration-test:如有需要,将包處理和釋出到一個能夠進行內建測試的環境。

6)verify:運作所有檢查,驗證包是否有效且達到品質标準。

7)install:把包安裝到maven本地倉庫,可以被其他工程作為依賴來使用。

8)Deploy:在內建或者釋出環境下執行,将最終版本的包拷貝到遠端的repository,使得其他的開發者或者工程可以共享。

3、site生命周期:建立和釋出項目站點,phase如下

1)pre-site:生成項目站點之前需要完成的工作

2)site:生成項目站點文檔

3)post-site:生成項目站點之後需要完成的工作

4)site-deploy:将項目站點釋出到伺服器

三、指令行和生命周期

各個生命周期互相獨立,一個生命周期的階段前後依賴。

舉例如下:

1、mvn clean

調用clean生命周期的clean階段,實際執行pre-clean和clean階段

2、mvn test

調用default生命周期的test階段,實際執行test以及之前所有階段

3、mvn clean install

調用clean生命周期的clean階段和default的install階段,實際執行pre-clean和clean,install以及之前所有階段

四:自定義綁定

生命周期中各個階段的執行與插件的綁定被内置了,以使得使用者不用任何配置就可以建構maven項目,除了内置綁定外,使用者也可以自定義綁定,在項目的pom.xml檔案中聲明插件的使用并規定其使用,這種規定包括執行目标與執行階段。