Maven 聲明周期

生命周期

? maven的生命周期并不是一個整體,maven擁有三套相互獨立的生命周期,分別為clean、default和site。clean是清理項目,default是構(gòu)建項目,site是建立項目站點。

清理 clean

  • pre-clean:執(zhí)行一些需要在clean之前完成的工作
  • clean:移除所有上一次構(gòu)建生成的文件
  • post-clean:執(zhí)行clean之后需要完成的工作

默認(rèn)default

  • validate:檢查配置,構(gòu)建所需信息是否都能獲取到
  • complie:編譯源代碼
  • test:單元測試
  • package:打包
  • verify:(檢查)對集成測試的結(jié)果進(jìn)行檢查
  • install:安裝打包的項目到本地倉庫
  • deploy:(部署)拷貝工程包到遠(yuǎn)程倉庫

細(xì)分的話,共有23個階段。

validate : 檢查工程配置是否正確,完成構(gòu)建過程的所有必要信息是否能夠獲取到。
initialize : 初始化構(gòu)建狀態(tài),例如設(shè)置屬性。
generate-sources : 生成編譯階段需要包含的任何源碼文件。
process-sources : 處理源代碼,例如,過濾任何值(filter any value)。
generate-resources : 生成工程包中需要包含的資源文件。
process-resources : 拷貝和處理資源文件到目的目錄中,為打包階段做準(zhǔn)備。
compile : 編譯工程源碼。
process-classes : 處理編譯生成的文件,例如 Java Class 字節(jié)碼的加強和優(yōu)化。
generate-test-sources : 生成編譯階段需要包含的任何測試源代碼。
process-test-sources : 處理測試源代碼,例如,過濾任何值(filter any values)。
test-compile : 編譯測試源代碼到測試目的目錄。
process-test-classes : 處理測試代碼文件編譯后生成的文件。
test : 使用適當(dāng)?shù)膯卧獪y試框架(例如JUnit)運行測試。
prepare-package : 在真正打包之前,為準(zhǔn)備打包執(zhí)行任何必要的操作。
package : 獲取編譯后的代碼,并按照可發(fā)布的格式進(jìn)行打包,例如 JAR、WAR 或者 EAR 文件。
pre-integration-test : 在集成測試執(zhí)行之前,執(zhí)行所需的操作。例如,設(shè)置所需的環(huán)境變量。
integration-test : 處理和部署必須的工程包到集成測試能夠運行的環(huán)境中。
post-integration-test : 在集成測試被執(zhí)行后執(zhí)行必要的操作。例如,清理環(huán)境。
verify : 運行檢查操作來驗證工程包是有效的,并滿足質(zhì)量要求。
install : 安裝工程包到本地倉庫中,該倉庫可以作為本地其他工程的依賴。
deploy : 拷貝最終的工程包到遠(yuǎn)程倉庫中,以共享給其他開發(fā)人員和工程。

站點文檔創(chuàng)建 site

  • pre-site
  • site:生成站點文檔
  • post-site
  • site-deploy:將生產(chǎn)的站點文檔部

命令行與生命周期

? 三套生命周期是相互獨立的,用戶調(diào)用clean生命周期時,不會觸發(fā)default生命周期的任何階段,反之亦然。在一個生命周期中,運行某個階段的時候,它之前的所有階段都會被運行。執(zhí)行多個生命周期時,每個生命周期間使用空格分開。舉例如下:

  • mvn clean
    調(diào)用clean生命周期的clean階段,實際執(zhí)行pre-clean和clean階段
  • mvn test
    調(diào)用default生命周期的test階段,實際執(zhí)行test以及之前所有階段
  • mvn clean install
    調(diào)用clean生命周期的clean階段和default的install階段,實際執(zhí)行pre-clean和clean,install以及之前所有階段
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么是生命周期?在Maven出現(xiàn)之前,項目構(gòu)建的生命周期就已經(jīng)存在,軟件開發(fā)人員每天都在對項目進(jìn)行清理、編譯、測試...
    yust5273閱讀 331評論 0 0
  • Build Lifecycle 生命周期 Maven是基于build生命周期的核心概念,這意味著build和di...
    亼玨閱讀 590評論 0 0
  • 一、maven的兩個作用 項目自動化構(gòu)建,通過命令行就可以完成整個項目構(gòu)建過程,不需要我們手動地進(jìn)行項目構(gòu)建 管理...
    lifeline張閱讀 915評論 0 1
  • 近期在學(xué)習(xí)java架構(gòu)相關(guān)課程,這里做些筆記,后期可以回顧用。 maven是每個程序員開發(fā)必備的技能之一,但是很多...
    佛銘閱讀 645評論 0 1
  • 何為生命周期 在 Maven 出現(xiàn)之前,項目構(gòu)建的生命周期就已經(jīng)存在。軟件開發(fā)人員每天都在對項目進(jìn)行清理、編譯、測...
    杰哥長得帥閱讀 362評論 0 2

友情鏈接更多精彩內(nèi)容