Maven學習筆記之maven的生命週期
阿新 • • 發佈:2019-02-02
1. Maven的生命週期
Maven的生命週期其實是指它對所有的構建過程進行了反覆的推敲、反思,之後總結了一套高度抽象過程。這個過程是高度完善的、容易擴充套件的。基本上包含了專案的清理、初始化、編譯、測試、打包、整合測試、驗證、部署、、站點生成等步驟,幾乎所有的專案生命週期也就這樣。Maven專案週期是一個抽象的概念,這個概念性的東西意味著它並不做任何實質性的事情,也就是說:它就像介面,只定義規範,具體細節它不管。具體的實現細節則交給了Maven的各個豐富的外掛。Maven的外掛機制有可能是跟Eclipse學的,基於一個核心core,定義一堆流程性的東西,讓外掛去實現這些規範。其他組織也可以根據這套規範插入自己的東西,形成有特色化的、自定製的 Maven。
Maven有三套相互獨立的生命週期,分別是:clean、default、site。clean主要是清理專案、default是Maven最核心的的構建專案、site是生成專案站點。每一個大的生命週期又分為很多個階段。後面的階段依賴於前面的階段,這點有點像Ant的構建依賴。生命週期本身相互獨立,使用者可以僅僅呼叫生命週期的某一個階段,也就是說使用者呼叫了default週期的任何階段,並不會觸發clean週期以及site週期的任何事情。
2. Maven生命週期階段詳解
3大生命週期蘊含著小小的階段,我們按順序看一下
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:將生成的站點發布到伺服器上
比如說在命令列執行了
Maven的生命週期其實是指它對所有的構建過程進行了反覆的推敲、反思,之後總結了一套高度抽象過程。這個過程是高度完善的、容易擴充套件的。基本上包含了專案的清理、初始化、編譯、測試、打包、整合測試、驗證、部署、、站點生成等步驟,幾乎所有的專案生命週期也就這樣。Maven專案週期是一個抽象的概念,這個概念性的東西意味著它並不做任何實質性的事情,也就是說:它就像介面,只定義規範,具體細節它不管。具體的實現細節則交給了Maven的各個豐富的外掛。Maven的外掛機制有可能是跟Eclipse學的,基於一個核心core,定義一堆流程性的東西,讓外掛去實現這些規範。其他組織也可以根據這套規範插入自己的東西,形成有特色化的、自定製的
Maven有三套相互獨立的生命週期,分別是:clean、default、site。clean主要是清理專案、default是Maven最核心的的構建專案、site是生成專案站點。每一個大的生命週期又分為很多個階段。後面的階段依賴於前面的階段,這點有點像Ant的構建依賴。生命週期本身相互獨立,使用者可以僅僅呼叫生命週期的某一個階段,也就是說使用者呼叫了default週期的任何階段,並不會觸發clean週期以及site週期的任何事情。
2. Maven生命週期階段詳解
3大生命週期蘊含著小小的階段,我們按順序看一下
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:處理專案測試資原始檔,複製測試資原始檔到
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:將生成的站點發布到伺服器上
比如說在命令列執行了