Maven的三套生命週期

生命週期Maven有三套相互獨立的生命週期

請注意這裏說的是“三套”,而且“相互獨立”,這三套生命週期分別是:

    Clean Lifecycle 在進行真正的構建之前進行一些清理工作。 

    Default Lifecycle 構建的核心部分,編譯,測試,打包,部署等等。 

    Site Lifecycle 生成項目報告,站點,發佈站點。 

再次強調一下它們是相互獨立的,你可以僅僅調用clean來清理工作目錄,僅僅調用site來生成站點。當然你也可以直接運行 mvn clean install site 運行所有這三套生命週期。

1、clean生命週期每套生命週期都由一組階段(Phase)組成,我們平時在命令行輸入的命令總會對應於一個特定的階段。比如,運行mvn clean ,這個的clean是Clean生命週期的一個階段。有Clean生命週期,也有clean階段。Clean生命週期一共包含了三個階段:

    pre-clean 執行一些需要在clean之前完成的工作 

    clean 移除所有上一次構建生成的文件 

    post-clean 執行一些需要在clean之後立刻完成的工作 

mvn clean 中的clean就是上面的clean,在一個生命週期中,運行某個階段的時候,它之前的所有階段都會被運行,也就是說,mvn clean 等同於 mvn pre-clean clean ,如果我們運行 mvn post-clean ,那麼 pre-clean,clean 都會被運行。這是Maven很重要的一個規則,可以大大簡化命令行的輸入。

2、Site生命週期pre-site 執行一些需要在生成站點文檔之前完成的工作

   site 生成項目的站點文檔 

    post-site 執行一些需要在生成站點文檔之後完成的工作,並且爲部署做準備 

    site-deploy 將生成的站點文檔部署到特定的服務器上 

這裏經常用到的是site階段和site-deploy階段,用以生成和發佈Maven站點,這可是Maven相當強大的功能,Manager比較喜歡,文檔及統計數據自動生成,很好看。

3、Default生命週期Default生命週期是Maven生命週期中最重要的一個,絕大部分工作都發生在這個生命週期中。這裏,只解釋一些比較重要和常用的階段:

    validate 

    generate-sources 

    process-sources 

    generate-resources 

    process-resources 複製並處理資源文件,至目標目錄,準備打包。 

    compile 編譯項目的源代碼。 

    process-classes 

    generate-test-sources 

    process-test-sources 

    generate-test-resources 

    process-test-resources 複製並處理資源文件,至目標測試目錄。 

    test-compile 編譯測試源代碼。 

    process-test-classes 

    test 使用合適的單元測試框架運行測試。這些測試代碼不會被打包或部署。 

    prepare-package 

    package 接受編譯好的代碼,打包成可發佈的格式,如 JAR 。 

    pre-integration-test 

    integration-test 

    post-integration-test 

    verify 

    install 將包安裝至本地倉庫,以讓其它項目依賴。 

    deploy 將最終的包複製到遠程的倉庫,以讓其它開發人員與項目共享。 

運行任何一個階段的時候,它前面的所有階段都會被運行,這也就是爲什麼我們運行mvn install 的時候,代碼會被編譯,測試,打包。此外,Maven的插件機制是完全依賴Maven的生命週期的,因此理解生命週期至關重要。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章