maven生命週期

車輪の唄發表於2020-10-03

1. 生命週期介紹

maven是一個專案構建(build)工具。對於一個專案包含清理、編譯、測試、打包、釋出包、部署等工作,maven把這些工作抽象成一個專案的生命週期,即mavn的生命週期。可以在不使用maven的情況下,實現專案的清理、編譯、測試、打包等專案相關操作,可以更好理解maven功能。參考 java自帶專案管理命令 。

Maven提供了三個獨立的生命週期clean、default、site:

  • clean生命週期:負責清理專案
  • default生命週期:負責構建專案
  • site生命週期:負責建立專案站點。

38173473

 

2. 生命週期階段和外掛對映

如下:( 可以參考maven官網 外掛  http://maven.apache.org/plugins/index.html

(1)clean

階段描述繫結外掛的目標
pre-clean  
clean清空target目錄

mvn-clean-plugin:clean

post-clean  

(2)default

階段描述繫結外掛
validate  
initialize  
generate-sources  
process-sources

處理專案的資原始檔,把src/main/resources目錄下的檔案複製輸出到classpatch中

 
process-sources  
generate-resources  
process-resources

複製主資原始檔至主輸出目錄

mvn-resource-plugin:resources

compile

編譯專案程式碼,生成class檔案放到lclasspath目錄

mvn-compiler-plugin:compile

process-class  
generate-test-sources  

process-test-sources

處理專案的測試資原始檔,把src/main/resources目錄下的檔案複製輸出到classpatch中

 

generate-test-resources

  

process-test-resources

  
test

使用單元測試框架執行測試,測試程式碼不會被打包或部署。把class放到測試環境的classpath目錄

mvn-surefire-puligin:test

prepare-package

  

package

打包生成jar,放到target目錄

mvn-jar-plugin:jar

pre-integration-test

  
 integration-test  

post-integration-test

  
verify  
install釋出到本地倉庫

mvn-install-plugin:install

deploy釋出到遠端倉庫

mvn-deploy-plugin:deploy

package階段是  執行打包,並且把依賴的包下載到本地目錄,是否maven的依賴都會下載到本地工程目錄進行打包?包含三種情況:

  • 預設只對專案生成一個jar,沒有第三方依賴
  • 通過assembly外掛生成一個tar.gz,包含 專案jar和第三方jar。
  • 將專案class和第三方jar組成一個 jar檔案,使用spring-boot-maven-plugin:repackage。

(3)site

階段描述繫結外掛
pre-site  
sit生成專案站點 
post-site  
sit-deploy將生成專案站點發布到伺服器 

 

相關文章