Maven的生命週期不是一個總體,而是 三套 相互獨立的生命週期,分別是 clean,default,site 。每一個生命週期都有各自不一樣的生命階段,能夠單獨執行一個生命週期的某個階段,在執行時,今生命週期該階段的其餘階段也依賴執行。java
clean生命週期:目的清理項目bash
階段 | 含義 |
---|---|
pre-clean | 執行一些清理前須要完成的工做 |
clean | 清理上一次構件生成的文件 |
post-clean | 執行一些清理後須要完成的工做 |
default生命週期:定義真正構建所須要指向的全部步驟,是最核心的部分服務器
階段 | 含義 |
---|---|
validate | 驗證工程是否正確,全部須要的資源是否可用。 |
initialize | |
generate-sources | |
process-sources | 處理項目主資源文件。通常來講是對 src/main/resources框架 目錄的內容進行變量替換工做後複製到項目輸出的主classpath的目錄中post |
generate-resources | |
process-resources | |
compile | 編譯項目的主源碼。通常來講是編譯 src/main/java 目錄下的java單元測試 文件到項目輸出的主classpath的目錄中測試 |
process-classes | |
generate-test-sourcesspa |
|
process-test-sources命令行 |
處理項目測試的資源文件 通常來講是對 src/test/resources 目錄的內容進行變量替換工做後複製到項目輸出的測試classpath的目錄中code |
generate-test-resources |
|
process-test-resources |
|
test-compile | 編譯項目測試的代碼。通常來講是編譯 src/test/java 目錄下的java 文件到項目輸出測試的classpath的目錄中 |
process-test-classes | |
test | 使用單元測試框架的運行測試,測試代碼不會被打包或者部署 |
prepare-package | |
package | 接受編譯好的代碼,打包成可發佈的格式,如JAR |
pre-integration-test | |
integration-test | 若有須要,將包處理和發佈到一個可以進行集成測試的環境 |
post-integration-test | |
verify | 運行全部檢查,驗證包是否有效且達到質量標準。 |
install | 將包安裝到Maven本地倉庫,供本地其餘項目使用 |
deploy | 將最終的包複製到遠程倉庫,供其餘開發人員和Maven項目使用 |
site 生命週期:創建和發佈項目站點,Maven可以基於pom所包含的信息,自動生成一個友好的站點。
階段 | 含義 |
---|---|
pre-site | 執行一些在生成站點以前須要完成的工做 |
site | 生成項目站點文檔 |
post-site | 執行一些在生成站點以後須要完成的工做 |
site-deploy | 將生成的項目站點發布到服務器上 |
命令和生命週期
從命令行執行Maven任務的主要方式就是調用 Maven的生命週期階段。各個生命週期相互獨立,而一個生命週期的階段有先後依賴關係。
經常使用命令
mvn clean #清理 mvn test #測試 mvn clean install #發佈到本地倉庫 mvn clean depoly site-depoly #發佈到遠程倉庫