Maven的生命周期階段
一、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的生命周期階段