天天看點

Maven生命周期

一.簡介

maven把項目的建構劃分為不同的生命周期(lifecycle)。粗略一點的話,它這個過程(phase)包括:編譯、測試、打包、內建測試、驗證、部署。maven中所有的執行動作(goal)都需要指明自己在這個過程中的執行位置,然後maven執行的時候,就依照過程的發展依次調用這些goal進行各種處理。

這個也是maven的一個基本排程機制。一般來說,位置稍後的過程都會依賴于之前的過程。當然,maven同樣提供了配置檔案,可以依照使用者要求,跳過某些階段。

三種生命周期

下面列出了default、clean和site生命周期的所有建構階段,這些階段按照指定的順序執行。

  1. Clean Lifecycle 在進行真正的建構之前進行一些清理工作
  2. Default Lifecycle 建構的核心部分,編譯,測試,打包,部署等等
  3. 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伺服器
           

本文版權歸作者所有,歡迎轉載,請務必添加原文連結。