Maven的生命週期是抽象的,其實際行爲都由插件來完成,如package階段的任務可能就會由maven-jar-plugin完成。java
1. 三套生命週期:服務器
Maven有三套相互獨立的生命週期,它們分別爲clean、default和site。框架
clean生命週期的目的是清理項目。maven
default生命週期的目的是構建項目。post
site生命週期的目的是創建項目站點。單元測試
2. clean生命週期:測試
clean生命週期的目的是清理項目,它包含三個階段:spa
1) pre-clean執行一些清理前須要完成的工做。插件
2) clean清理上一次構建生成的文件。命令行
3) post-clean執行一些清理後須要完成的工做。
3. default生命週期:
default生命週期定義了真正構建時所須要執行的全部步驟,它是全部生命週期中最核心的部分,其包含的階段以下:
1) validate
2) initialize
3) generate-sources
4) process-sources : 處理項目主資源文件。通常來講是對src/main/resources目錄的內容進行變量替換等工做後,複製到項目輸出的主classapth目錄中。
5) generate-resources
6) process-resources
7) compile:編譯項目的主源碼。通常來講,是編譯src/main/java目錄下的Java文件至項目輸出的主classpath目錄中。
8) process-classes
9) generate-test-sources
10) process-test-sources:處理項目測試資源文件。通常來講,是對src/test/resources目錄的內容進行變量替換等工做後,複製到項目輸出的測試classpath目錄中。
11) generate-test-resources
12) process-test-resources
13) test-compile:編譯項目的測試代碼。通常來講,是編譯src/test/java目錄下的Java文件至項目輸出的測試classpath目錄中。
14) process-test-classes
15) test:使用單元測試框架運行測試,測試代碼不會被打包或部署。
16) prepare-package
17) package:接受編譯好的代碼,打包成可發佈的格式,如jar。
18) pre-integration-test
19) integration-test
20) post-integration-test
21) verify
22) install:將包安裝到Maven本地倉庫,供本地其餘Maven項目使用。
23) deploy:將最終的包複製到遠程倉庫,供其餘開發人員和Maven項目使用。
4. site生命週期:
site生命週期的目的是創建和發佈項目站點,Maven可以基於POM所包含的信息,自動生成一個友好的站點,方便團隊交流和發佈項目信息。該生命週期包含以下階段:
1) pre-site:執行一些在生成項目站點以前須要完成的工做。
2) site:生成項目站點文檔。
3) post-site:執行一些在生成項目站點以後須要完成的工做。
4) site-deploy:將生成的項目站點發布到服務器上。
5. 命令行與生命週期:
從命令行執行Maven任務的最主要方式就是調用Maven的生命週期階段。