生命周期基本概念
Maven的生命周期:包含了項(xiàng)目的清理认然、初始化、編譯漫萄、測試卷员、打包、集成測試腾务、驗(yàn)證毕骡、部署和站點(diǎn)生成等幾乎所有構(gòu)建步驟。
Maven生命周期的作用:就是為了對所有的構(gòu)建過程進(jìn)行抽象和統(tǒng)一岩瘦。
Maven插件:在Maven的設(shè)計(jì)中未巫,實(shí)際的任務(wù)(如編譯源代碼)都交由插件來完成。每個(gè)構(gòu)建步驟都可以綁定一個(gè)或者多個(gè)插件行為启昧,而且Maven為大多數(shù)構(gòu)建步驟編寫并綁定了默認(rèn)插件叙凡。
Maven定義的生命周期和插件機(jī)制聯(lián)合作用:一方面保證了所有Maven項(xiàng)目有一致的構(gòu)建標(biāo)準(zhǔn),另一方面又通過默認(rèn)插件簡化和穩(wěn)定了實(shí)際的項(xiàng)目構(gòu)建密末。此外握爷,該機(jī)制還提供了足夠的擴(kuò)展空間,用戶可以通過配置現(xiàn)有插件或者自行編寫插件來自定義構(gòu)建行為严里。
生命周期詳解
Maven擁有三套相互獨(dú)立的生命周期新啼,它們分別為clean、default和site田炭。clean生命周期的目的是清理項(xiàng)目师抄,default生命周期的目的是構(gòu)建項(xiàng)目漓柑,而site生命周期的目的是建立項(xiàng)目站點(diǎn)教硫。
三套生命周期本身是相互獨(dú)立的叨吮,用戶可以僅僅調(diào)用clean生命周期的某個(gè)階段,或者僅僅調(diào)用default生命周期的某個(gè)階段瞬矩,而不會(huì)對其它生命周期產(chǎn)生任何影響茶鉴。
clean生命周期包含三個(gè)階段,default生命周期定義了真正構(gòu)建時(shí)所需要執(zhí)行的所有步驟景用,它是生命周期中最核心的部分涵叮,包含了將近二十個(gè)階段,site生命周期包含四個(gè)階段伞插。
常用的Maven命令實(shí)際都是基于這些階段簡單組合而成的割粮,例子如下:
$mvn clean deploy site-deploy
該命令調(diào)用clean生命周期的clean階段,default生命周期的deploy階段媚污,以及site生命周期的site-deploy階段舀瓢。
插件綁定
clean、site生命周期與插件目標(biāo)的綁定關(guān)系網(wǎng)上即可查找耗美,default生命周期的內(nèi)置插件綁定關(guān)系及具體任務(wù)網(wǎng)上也可以找到京髓。
執(zhí)行Maven命令的時(shí)候,輸出中包含了生命周期階段與插件的綁定關(guān)系商架。
除了內(nèi)置綁定以外堰怨,用戶還能夠自己選擇將某個(gè)插件目標(biāo)綁定到生命周期的某個(gè)階段上,這種自定義綁定方式能讓Maven項(xiàng)目在構(gòu)建過程中執(zhí)行更多更富特色的任務(wù)蛇摸。
完成了插件和生命周期的綁定之后备图,用戶還可以配置插件目標(biāo)的參數(shù),進(jìn)一步調(diào)整插件目標(biāo)所執(zhí)行的任務(wù)赶袄,以滿足項(xiàng)目的需求诬烹。幾乎所有Maven插件的目標(biāo)都有一些可配置的參數(shù),個(gè)人喜歡在POM配置文件中進(jìn)行配置弃鸦,當(dāng)然通過命令行也可以配置這些參數(shù)绞吁。
文章僅供參考,代碼并不是全正確唬格,只需要知道在對應(yīng)的情況家破,可以做對應(yīng)的處理,代碼是變化的购岗,我相信原理不變