【Maven】什麼是Maven以及其生命週期

什麼是Maven

關於定義是這麼寫的:Maven是一個項目管理工具,它包含了一個項目對象模型 (POM:Project Object Model),一組標準集合,一個項目生命週期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命週期階段(phase)中插件(plugin)目標(goal)的邏輯

簡單的說,Maven將一個項目進行對象化,然後在其pom.xml文件中進行各種配置,從而完成在其生命週期內的打包等各種邏輯,另外,Maven能夠有效率的管理各種jar包,並且在pom文件中配置後,使用jar包時去會自動從庫中下載,而不需要我們到處去一個一個尋找jar包,然後一個一個的添加jar包,提高了開發效率。


Maven的生命週期

開發項目的時候,不斷地在編譯、測試、打包、部署等過程,maven的生命週期就是對所有構建過程抽象與統一,生命週期包含項目的清理、初始化、編譯、測試、打包、集成測試、驗證、部署、站點生成等幾乎所有的過程。

Maven 有三套相互獨立的生命週期:
1)CleanLifecycle 在進行真正的構建之前進行一些清理工作。
2)DefaultLifecycle 構建的核心部分,編譯,測試,打包,部署等等。
3)SiteLifecycle 生成項目報告,站點,發佈站點。

生命週期本身相互獨立,用戶可以僅僅調用生命週期的某一個階段,也就是說用戶調用了default 週期的任何階段,並不會觸發clean 週期以及site 週期的任何事情。


clean 週期:

pre-clean:準備清理
clean:真正的清理工作
post-clean:執行清理後的一些後續工作

default 週期:

validate:驗證
initialize:初始化配置
generate-sources:生成源代碼編譯目錄
process-sources:處理項目主資源文件,複製資源文件到outputclasspath
generate-resources:生成資源目錄
process-resources:處理資源文件
complie:編譯源代碼
process-classes:處理編譯後文件
generate-test-sources:生成測試目錄
process-test-sources:處理項目測試資源文件,複製測試資源文件到outputclasspath
generate-test-resources:生成測試資源文件
process-test-resources:處理測試資源文件
test-compile:編譯測試代碼
process-test-classes:處理測試代碼
test:單元測試運行測試代碼
prepare-package:打包前的準備
package:將編譯好的代碼打包成爲jar 或者war 或者ear 等等
pre-integration-test:準備整體測試
integration-test:整體測試
post-integration-test:爲整體測試收尾
verify:驗證
install:安裝到本地Maven 庫
deploy:將最終包部署到遠程Maven 倉庫

如圖:

site 週期:

pre-site:準備生成站點
site:生成站點及文檔
post-site:站點收尾
site-deploy:將生成的站點發布到服務器上

需要注意的是:在一個生命週期中,運行某個階段的時候,它之前的所有階段都會被運行。

比如說在命令行執行了mvn clean,clean 週期的clean 階段,也就是說實際執行了pre-clean 階段與clean 階段。

mvn deploy,就是執行了整個default 生命週期。

mvn clean deploy site-deploy這個就是執行了clean 週期的前兩個階段、default 週期的所有階段、site 週期的所有階段。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章