來源:http://www.yiibai.com/maven/maven_build_life_cycle.html
階段 | 處理 | 描述 |
準備資源 | 資源複製 | 資源複製可以進行定製 |
編譯 | 執行編譯 | 源代碼編譯在此階段完成 |
包裝 | 打包 | 創建JAR/WAR包如在 pom.xml 中定義提及的包 |
安裝 | 安裝 | 這一階段在本地/遠程Maven倉庫安裝程序包 |
清潔生命週期
當我們執行命令 mvn clean 命令後,Maven 調用清潔的生命週期由以下幾個階段組成:
pre-clean
clean
post-clean
Maven 清潔目標(clean:clean)被綁定清潔乾淨的生命週期階段。clean:clean 目標刪除 build 目錄下的構建輸出。因此,當 mvn clean 命令執行時,Maven會刪除編譯目錄。
目標清潔生命週期在上述階段,我們可以自定義此行為。
默認(或生成)生命週期
這是 Maven 主要的生命週期,用於構建應用程序。它有以下 23 個階段。
生命週期階段 | 描述 |
validate | 驗證項目是否正確,並且所有必要的信息可用於完成構建過程 |
initialize | 建立初始化狀態,例如設置屬性 |
generate-sources | 產生任何的源代碼包含在編譯階段 |
process-sources | 處理源代碼,例如,過濾器值 |
generate-resources | 包含在包中產生的資源 |
process-resources | 複製和處理資源到目標目錄,準備打包階段 |
compile | 編譯該項目的源代碼 |
process-classes | 從編譯生成的文件提交處理,例如:Java類的字節碼增強/優化 |
generate-test-sources | 生成任何測試的源代碼包含在編譯階段 |
process-test-sources | 處理測試源代碼,例如,過濾器任何值 |
test-compile | 編譯測試源代碼到測試目標目錄 |
process-test-classes | 處理測試代碼文件編譯生成的文件 |
test | 運行測試使用合適的單元測試框架(JUnit) |
prepare-package | 執行必要的任何操作的實際打包之前準備一個包 |
package | 提取編譯後的代碼,並在其分發格式打包,如JAR,WAR或EAR文件 |
pre-integration-test | 完成執行集成測試之前所需操作。例如,設置所需的環境 |
integration-test | 處理並在必要時部署軟件包到集成測試可以運行的環境 |
pre-integration-test | 完成集成測試已全部執行後所需操作。例如,清理環境 |
verify | 運行任何檢查,驗證包是有效的,符合質量審核規定 |
install | 將包安裝到本地存儲庫,它可以用作當地其他項目的依賴 |
deploy | 複製最終的包到遠程倉庫與其他開發者和項目共享 |
有涉及到Maven 生命週期值得一提幾個重要概念:
當一個階段是通過 Maven命令調用,例如:mvn compile,只有階段到達幷包括這個階段才會被執行。
不同的 Maven 目標綁定到 Maven生命週期的不同階段這是這取決於包類型(JAR/WAR/EAR)。
網站的生命週期
Maven的網站插件通常用於創建新的文檔,創建報告,部署網站等。
階段
pre-site
site
post-site
site-deploy
領取大數據開發、大數據挖掘分析、Python人工智能等試聽資料,可上加米穀大數據官網(http://www.dtinone.com/)諮詢領取或者加入加米穀大數據技術交流群領取:234648425
閱讀更多 張安文 的文章