:? ? maven的生命周期就是為了對所有的構(gòu)建過程進行抽象和統(tǒng)一苍息。
? ? 而在這之中,是包括了項目清理抱婉、初始化、編譯桌粉、打包蒸绩、測試、部署等幾乎所有的構(gòu)建步驟铃肯。
? ? 簡單來說患亿,maven的生命周期可以理解為構(gòu)建工程的步驟。
? ? 在maven中又含有三套相互獨立的生命周期押逼。(三套步藕、相互獨立!)
? ? 1挑格、Clean Lifecycle:是在構(gòu)建工程之前進行一些清理操作咙冗。
? ? 2、Default Lifecyle:是構(gòu)建的真正核心部分:編譯啊漂彤,測試啊雾消,打包啊灾搏,部署啊這些、
? ? 3立润、Site Lifecyle:生成項目報告狂窑、站點、發(fā)布站點桑腮。
? ? 既然說是生命周期那肯定有階段泉哈。
--------------------------------------------------------------------------------
? ? clean生命周期:清理項目。
? ? clean的生命周期一共包含了三個階段:
? ? 1破讨、pre-clean:執(zhí)行一些需要在clean之前完成的操作丛晦。
? ? 2、clean:移除上一次構(gòu)建生成的文件添忘。
? ? 3采呐、post-clean:執(zhí)行一些需要在clean之后立刻要完成的工作。
? ? 也就是說搁骑,mvn clean等同于mvn pre-clean clean斧吐。
? ? 如果我們運行mvn post-clean,那么pre-clean仲器,clean都會被執(zhí)行煤率。這是Maven很重要的一個規(guī)則,可以簡化命令行的輸入乏冀。
--------------------------------------------------------------------------------
? ? Default生命周期:構(gòu)造項目蝶糯。
? ? Default生命周期是Maven生命周期中最重要的一個。絕大部分工作都發(fā)生在這里辆沦。
? ? 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 接受編譯好的代碼铭腕,打包成可發(fā)布的格式银择,如JAR。
????pre-integration-test
????integration-test
????post-integration-test
????verify
? ??install 將包安裝至本地倉庫累舷,以讓其它項目依賴浩考。
????deploy將最終的包復制到遠程的倉庫,以讓其它開發(fā)人員與項目共享
? ? 其中加黑的就是所提到的被盈,而且在運行任何一個階段的時候怀挠,在這個之前的所有階段都會被運行析蝴。也就是說我們執(zhí)行mvn install,代碼就會被編譯绿淋、測試闷畸、打包、并安裝到本地倉庫吞滞。
? ? Maven的插件機制完全依賴于Maven的生命周期的佑菩,理解生命周期的概念以及內(nèi)容等至關(guān)重要。
--------------------------------------------------------------------------------
? ? Sit生命周期:生成項目站點裁赠。
? ? 這里常用到的是site階段和site-deploy階段殿漠,用來生成和發(fā)布Maven站點。(這是Maven相當強大的功能)
? ? pre-site:執(zhí)行一些需要在生成站點文檔前完成的工作
? ? site:生成項目的站點文檔
? ? post-site:執(zhí)行一些需要早生成站點后立即完成的工作佩捞。為部署做準備绞幌。
? ? site-deploy:將生成的站點文檔部署到特定的服務器上
? ??