Maven生命週期詳解

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的生命週期階段。

相關文章
相關標籤/搜索