除了坐標、依賴以及倉庫之外,Maven的另外兩個核心概念是生命周期和插件。在有關Maven的日常使用中,命令行的輸入往往就對應了生命周期,如mvn package就表示執(zhí)行默認生命周期階段package。Maven的生命周期是抽象的,其實際行為都由插件來完成,如package階段的任務可能就會由maven-jar-plugin完成。生命周期和插件兩者協(xié)同工作,密不可分。

 

1.Maven生命周期

 

我們在開發(fā)項目的時候,我們不斷地在經(jīng)歷編譯、測試、打包、部署等過程,maven的生命周期就是對所有這些過程的一個抽象與統(tǒng)一,她的生命周期包含項目的清理、初始化、編譯、測試、打包、集成測試、驗證、部署、站點生成等幾乎所有的過程,而且maven的生命周期是及其靈活,她生命周期的每個階段是通過插件來實現(xiàn)的,maven也內置了很多插件,所以我們在項目進行編譯、測試、打包的過程是沒有感覺到。像編譯是通過maven-compile-plugin實現(xiàn)的、測試是通過maven-surefire-plugin實現(xiàn)的。

 

Maven有三套相互獨立的生命周期,請注意這里說的是“三套”,而且“相互獨立”,初學者容易將Maven的生命周期看成一個整體,其實不然。這三套生命周期分別是:

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

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

  • Site Lifecycle  生成項目報告,站點,發(fā)布站點。

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

 

知道了每套生命周期的大概用途和相互關系以后,來逐個詳細看一下每套生命周期,CleanSite相對比較簡單,先解釋一下:

每套生命周期都由一組階段(Phase)組成,我們平時在命令行輸入的命令總會對應于一個特定的階段。比如,運行mvn clean,這個的cleanClean生命周期的一個階段。有點繞?要知道有Clean生命周期,也有clean階段。

Clean生命周期一共包含了三個階段:

  • 網(wǎng)友評論