一.簡介
maven把項目的建構劃分為不同的生命周期(lifecycle)。粗略一點的話,它這個過程(phase)包括:編譯、測試、打包、內建測試、驗證、部署。maven中所有的執行動作(goal)都需要指明自己在這個過程中的執行位置,然後maven執行的時候,就依照過程的發展依次調用這些goal進行各種處理。
這個也是maven的一個基本排程機制。一般來說,位置稍後的過程都會依賴于之前的過程。當然,maven同樣提供了配置檔案,可以依照使用者要求,跳過某些階段。
三種生命周期
下面列出了default、clean和site生命周期的所有建構階段,這些階段按照指定的順序執行。
- Clean Lifecycle 在進行真正的建構之前進行一些清理工作
- Default Lifecycle 建構的核心部分,編譯,測試,打包,部署等等
- Site Lifecycle 生成項目報告,站點,釋出站點
注意:執行某個生命周期的某個階段不會影響其它的生命周期!
如果要同時執行多個生命周期的階段可在指令行輸入多個指令,中間以空格隔開,例如: clean package 該指令執行clean生命周期的clean階段和default生命周期的package階段。
clean生命周期
執行階段 描述說明
pre-clean 在實際的項目清理之前執行所需的過程
clean 删除前一個建構生成的所有檔案
post-clean 執行完成項目清理所需的過程
Default生命周期
執行階段 描述說明
validate 驗證項目是正确的,所有必要的資訊都是可用的。
initialize 初始化建構狀态,例如設定屬性或建立目錄。
generate-sources 生成包含在編譯中的任何源代碼。
process-sources 處理源代碼,例如過濾任何值。
generate-resources 生成包含在包中的資源。
process-resources 将資源複制并處理到目标目錄中,準備打包。
compile 編譯項目的源代碼。
process-classes 從編譯後生成生成的檔案,例如在Java類上執行位元組碼增強。
generate-test-sources 生成包含在編譯中的任何測試源代碼。
process-test-sources 處理測試源代碼,例如過濾任何值。
generate-test-resources 為測試建立資源。
process-test-resources 将資源複制并處理到測試目标目錄中。
test-compile 将測試源代碼編譯到測試目标目錄
process-test-classes 從測試編譯後post-process生成檔案,例如在Java類上執行位元組碼增強。對于Maven 2.0.5和以上。
test 使用合适的單元測試架構運作測試。這些測試不應該要求打包或部署代碼。
prepare-package 在實際包裝前執行必要的準備工作。這通常會導緻包的一個未打包的、經過處理的版本。(Maven 2.1及以上)
package 使用已編譯的代碼,并将其打包成可部署格式,例如JAR。
pre-integration-test 執行內建測試之前需要執行的操作。這可能涉及到設定所需的環境等問題。
integration-test 在需要內建測試的環境中,處理并部署包。
post-integration-test 執行內建測試後所需要的操作。這可能包括清理環境。
verify 運作任何檢查以驗證包是否有效,并滿足品質标準。
install 将該包安裝到本地存儲庫中,作為本地其他項目的依賴項。
deploy 在內建或釋出環境中完成,将最終包複制到遠端存儲庫中,以便與其他開發人員和項目共享。
Site生命周期
執行階段 描述說明
pre-site 在實際的項目站點生成之前執行過程
site 生成項目的站點文檔
post-site 執行确定站點生成的過程,并為站點部署做好準備
site-deploy 将生成的站點文檔部署到指定的web伺服器
本文版權歸作者所有,歡迎轉載,請務必添加原文連結。