1. 程式人生 > >maven入門(6)maven的生命周期

maven入門(6)maven的生命周期

人員 資源文件 清理 生成 單元測試框架 initial site 代碼 init

1. 三套生命周期
Maven擁有三套相互獨立的生命周期,它們分別為clean,default和site。
每個生命周期包含一些階段,這些階段是有順序的,並且後面的階段依賴於前面的階段,用戶和Maven最直接的交互方式就是調用這些生命周期階段。
以clean生命周期為例,它包含的階段有pre-clean, clean 和 post clean。當用戶調用pre-clean的時候,只有pre-clean得以執行,當用戶調用clean的時候,pre-clean和clean階段會得以順序執行;當用戶調用post-clean的時候,pre-clean,clean,post-clean會得以順序執行。

較之於生命周期階段的前後依賴關系,三套生命周期本身是相互獨立的,用戶可以僅僅調用clean生命周期的某個階段,或者僅僅調用default生命周期的某個階段,而不會對其他生命周期產生任何影響。

2. clean 生命周期

clean生命周期的目的是清理項目,它包含三個階段:

1)pre-clean 執行一些清理前需要完成的工作。

2)clean 清理上一次構建生成的文件。

3)post-clean 執行一些清理後需要完成的工作。

3. default 生命周期

default生命周期定義了真正構件時所需要執行的所有步驟,它是生命周期中最核心的部分,它包含的階段如下:

1) validate 驗證項目是否正確和所有需要的相關資源是否可用

2) initialize 初始化構建

3) generate-sources

4) process-sources 處理源代碼

5) generate-resources

6) process-resources 處理項目主資源文件。對src/main/resources目錄的內容進行變量替換等工作後,復制到項目輸出的主classpath目錄中。

7) compile 編譯項目的主源代碼

8) process-classes

9) generate-test-sources

10) process-test-sources 處理項目測試資源文件

11)generate-test-resources

12) process-test-resources 處理測試的資源文件

13)test-compile 編譯項目的測試代碼

14)process-test-classes

15) test 使用單元測試框架運行測試,測試代碼不會被打包或部署

16)prepare-package 做好打包的準備

17)package 接受編譯好的代碼,打包成可發布的格式

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 將生成的項目站點發布到服務器上

maven入門(6)maven的生命周期