1. 程式人生 > >Maven的生命周期階段

Maven的生命周期階段

行集 模式 生成 build deploy compile tegra 統一 共享

一、Maven的生命周期

Maven的生命周期就是對所有的構建過程進行抽象和統一。包含了項目的清理、初始化、編譯、測試、打包、集成測試、驗證、部署和站點生成等幾乎所有的構建步驟。

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以及之前所有階段

四、m2eclipse和生命周期

1、m2eclipse中預置的mvn命令

右鍵maven項目或pom.xml文件>Run As 可以看到預置的mvn命令

技術分享

2、自定義mvn命令

單擊 上圖中的maven Build...,自定義命令 mvn clean install:

技術分享

定義完成後,點擊maven Build,可以看到定義好的命令:

技術分享

Maven的生命周期階段