maven生命週期
1. 生命週期介紹
maven是一個專案構建(build)工具。對於一個專案包含清理、編譯、測試、打包、釋出包、部署等工作,maven把這些工作抽象成一個專案的生命週期,即mavn的生命週期。可以在不使用maven的情況下,實現專案的清理、編譯、測試、打包等專案相關操作,可以更好理解maven功能。參考 java自帶專案管理命令 。
Maven提供了三個獨立的生命週期clean、default、site:
- clean生命週期:負責清理專案
- default生命週期:負責構建專案
- site生命週期:負責建立專案站點。
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 | 將生成專案站點發布到伺服器 |
相關文章
- maven-生命週期Maven
- Maven 構建生命週期Maven
- Maven生命週期及常用命令Maven
- 跟著官方文件學Maven構建生命週期Maven
- 生命週期
- View生命週期與Activity生命週期的關係View
- vue - 生命週期Vue
- Fragment生命週期Fragment
- vue生命週期Vue
- spring生命週期Spring
- ubuntu生命週期Ubuntu
- Flutter - 生命週期Flutter
- sessionStorag 生命週期Session
- PHP 生命週期PHP
- Activity生命週期
- React生命週期React
- Salesforce 生命週期管理(一)應用生命週期淺談Salesforce
- vue 生命週期梳理Vue
- java servlet 生命週期JavaServlet
- Android Activity生命週期Android
- Activity生命週期onDestroy
- React-生命週期React
- IOC與生命週期
- vue 生命週期深入Vue
- React元件生命週期React元件
- JPA概述、生命週期
- viewController的生命週期ViewController
- Servlet的生命週期Servlet
- Tomcat生命週期管理Tomcat
- React 元件生命週期React元件
- UIViewController的生命週期UIViewController
- Flutter -- Element生命週期Flutter
- Flutter 的生命週期Flutter
- Spring的生命週期Spring
- Spring Bean 生命週期SpringBean
- bean的生命週期Bean
- IOC - bean 生命週期Bean
- UIAbility元件生命週期UI元件