一個完整的項目構建過程一般包括清理、編譯、測試、打包、集成測試、驗證、部署等步驟,Maven從中抽取了一套完善的、易擴展的生命週期。Maven的生命週期是抽象的,其中的具體任務都交由插件來完成。Maven爲大多數構建任務編寫並綁定了默認的插件,如針對編譯的插件:maven-compiler-plugin。用戶也可自行配置或編寫插件。apache
maven的三套生命週期maven
Maven定義了三套生命週期:clean、default、site,每一個生命週期都包含了一些階段(phase)。三套生命週期相互獨立,但各個生命週期中的phase倒是有順序的,且後面的phase依賴於前面的phase。執行某個phase時,其前面的phase會依順序執行,但不會觸發另外兩套生命週期中的任何phase。測試
1.1 clean生命週期:ui
1.2 default生命週期部分階段:spa
1.3 site生命週期(用的較少).net
Maven的核心文件很小,主要的任務都是由插件來完成。定位到:%本地倉庫%\org\apache\maven\plugins,能夠看到一些下載好的插件:插件
2.1 插件的目標(Plugin Goals)code
插件目標是爲項目在生命週期各個階段使用不一樣插件來完成構建任務。xml
2.2 生命週期階段與插件關係
Maven 的生命週期是抽象的,實際須要插件來完成任務,這一過程是經過將插件的目標(goal)綁定到生命週期的具體階段(phase)來完成的。如:將 maven-compiler-plugin插件的compile目標綁定到default生命週期的compile階段,完成項目的源代碼編譯:blog
2.3 maven的內置插件
咱們在執行maven命令的時候 mvn clean compile package,maven會經過本身內置插件幫咱們執行 項目的清理 編譯 打包工做,這些也是經過maven的內置插件實現的。
2.4 插件的配置
Xml代碼
1. <build> 2. <plugins> 3. <plugin> 4. <!-- 配置插件座標--> 5. </plugin> 6. </plugins> 7. </build>
maven系列文章: