天天看點

(轉)Maven實戰(四)生命周期

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 将生成的項目站點釋出到伺服器上

繼續閱讀