Maven生命周期介紹

生命周期的概念與意義

在項(xiàng)目構(gòu)建時(shí)通常會(huì)包含清理俭嘁、編譯躺枕、測(cè)試、打包兄淫、驗(yàn)證屯远、部署蔓姚,文檔生成等步驟捕虽,maven 統(tǒng)一對(duì)其進(jìn)行了整理抽像成三個(gè)生命周期 (lifecycle)及各自對(duì)應(yīng)的多個(gè)階段(phase)。這么做的意義是:

  1. 每個(gè)階段都成為了一個(gè)擴(kuò)展點(diǎn)坡脐,可以采用不同的方式來(lái)實(shí)現(xiàn)泄私,提高了擴(kuò)展性與靈活性。
  2. 規(guī)范統(tǒng)一了maven 的執(zhí)行路徑。

在執(zhí)行項(xiàng)目構(gòu)建階段時(shí)可以采用jar方式構(gòu)建也可以采用war包方式構(gòu)建晌端,提高了靈活性捅暴。我們可以通過(guò)命令 mvn ${phase name}直接觸發(fā)指定階段的執(zhí)行。

maven三大生命周期與其對(duì)應(yīng)的phase(階段)

maven 總共包含三大生生命周期

  1. clean Lifecycle :清理生命周期咧纠,用于于清理項(xiàng)目
  2. default Lifecycle:默認(rèn)生命周期蓬痒,用于編譯、打包漆羔、測(cè)試梧奢、部署等
  3. site Lifecycle 站點(diǎn)文檔生成,用于構(gòu)建站點(diǎn)文檔


    default生命周期.png

上圖給出了默認(rèn)的生命周期的流程圖演痒,我么可以看到亲轨,生命周期也是抽象的流程概念,具體的實(shí)現(xiàn)鸟顺,則是由相應(yīng)的jar實(shí)現(xiàn)惦蚊。這就好比抽象類或者接口,僅僅定義標(biāo)準(zhǔn)讯嫂,也體現(xiàn)了具體場(chǎng)景中的靈活性蹦锋。

生命周期(lifecycle) 階段(phase) 描述(describe)
clean Lifecycle pre-clean 預(yù)清理
clean 清理
post-clean 清理之后
default Lifecycle validate 驗(yàn)證
initialize 初始化
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 編譯測(cè)試類
process-test-classes
test 執(zhí)行測(cè)試
prepare-package 構(gòu)建前準(zhǔn)備
package 打包構(gòu)建
pre-integration-test
integration-test
post-integration-test
verify 驗(yàn)證
install 上傳到本地倉(cāng)庫(kù)
deploy 上傳到遠(yuǎn)程倉(cāng)庫(kù)
site Lifecycle pre-site 準(zhǔn)備構(gòu)建站點(diǎn)
site 構(gòu)建站點(diǎn)
post-site 構(gòu)建站點(diǎn)之后
site-deploy 站點(diǎn)部署

三大生命周期可以相互獨(dú)立執(zhí)行,也可以合在一起執(zhí)行欧芽。但lifecycle 中的phase 是有嚴(yán)格執(zhí)行的順序的晕粪,比如必須是先執(zhí)行完compile 才能執(zhí)行pakcage 動(dòng)作,此外phase 還有執(zhí)行邏輯存在渐裸,即當(dāng)你執(zhí)行一個(gè)phase 時(shí)巫湘,其前面的phase 會(huì)自動(dòng)執(zhí)行。

生命周期的phase組成了項(xiàng)目過(guò)建的完整過(guò)程昏鹃,但這些過(guò)程具體由誰(shuí)來(lái)實(shí)現(xiàn)呢尚氛?這就是插件,maven 的核心部分代碼量其實(shí)很少洞渤,其大部分實(shí)現(xiàn)都是由插件來(lái)完成的阅嘶。比如:test 階段就是由 maven-surefire-plugin 實(shí)現(xiàn)。在pom.xml 中我們可以設(shè)置指定插件目標(biāo)(gogal)與phase 綁定载迄,當(dāng)項(xiàng)目構(gòu)建到達(dá)指定phase時(shí) 就會(huì)觸發(fā)些插件gogal 的執(zhí)行讯柔。 一個(gè)插件有時(shí)會(huì)實(shí)現(xiàn)多個(gè)phase,比如:maven-compiler-plugin插件分別實(shí)現(xiàn)了compile 和testCompile护昧。

在我們的項(xiàng)目當(dāng)中并沒(méi)有配置 maven-compiler-plugin 插件,但當(dāng)我們執(zhí)行compile 階段時(shí)一樣能夠執(zhí)行編譯操作魂迄,原因是maven 默認(rèn)為指定階段綁定了插件實(shí)現(xiàn)。

下表列舉了各個(gè)階段的默認(rèn)綁定插件惋耙,數(shù)據(jù)來(lái)源于Maven官網(wǎng)捣炬。
Clean Lifecycle Bindings

Phase plugin:goal
clean clean:clean

Default Lifecycle Bindings - Packaging ear

Phase plugin:goal
generate-resources ear:generate-application-xml
process-resources resources:resources
package ear:ear
install install:install
deploy deploy:deploy

Default Lifecycle Bindings - Packaging jar

Phase plugin:goal
process-resources resources:resources
compile compiler:compile
process-test-resources resources:testResources
test-compile compiler:testCompile
test surefire:test
package jar:jar
install install:install
deploy deploy:deploy

Default Lifecycle Bindings - Packaging maven-plugin

Phase plugin:goal
generate-resources plugin:descriptor
process-resources resources:resources
compile compiler:compile
process-test-resources resources:testResources
test-compile compiler:testCompile
test surefire:test

Site Lifecycle Bindings

Phase plugin:goal
site site:site
site-deploy site:deploy

從表格數(shù)據(jù)我們可以看出熊昌,package階段綁定插件非常靈活,生成不同的類型包湿酸,如jar婿屹,war或者ear,對(duì)應(yīng)的默認(rèn)插件是不同的推溃。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末昂利,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子铁坎,更是在濱河造成了極大的恐慌页眯,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厢呵,死亡現(xiàn)場(chǎng)離奇詭異窝撵,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)襟铭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門碌奉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人寒砖,你說(shuō)我怎么就攤上這事赐劣。” “怎么了哩都?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵魁兼,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我漠嵌,道長(zhǎng)咐汞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任儒鹿,我火速辦了婚禮化撕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘约炎。我一直安慰自己植阴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布圾浅。 她就那樣靜靜地躺著掠手,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狸捕。 梳的紋絲不亂的頭發(fā)上喷鸽,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音府寒,去河邊找鬼魁衙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛株搔,可吹牛的內(nèi)容都是我干的剖淀。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼纤房,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼纵隔!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起炮姨,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤捌刮,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后舒岸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绅作,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年蛾派,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俄认。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡洪乍,死狀恐怖眯杏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情壳澳,我是刑警寧澤岂贩,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站巷波,受9級(jí)特大地震影響萎津,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抹镊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一姜性、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧髓考,春花似錦部念、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至查蓉,卻和暖如春乌询,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背豌研。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工妹田, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留唬党,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓鬼佣,卻偏偏與公主長(zhǎng)得像驶拱,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子晶衷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Hello蓝纲!你好! 這里是心晴的育兒說(shuō)晌纫! 生活中税迷,有些孩子往往不愛(ài)說(shuō)話,尤其是在陌生的環(huán)境中幾乎...
    H黃老師H閱讀 345評(píng)論 0 4
  • 我從未體驗(yàn)過(guò)生身母親對(duì)我的慈愛(ài)锹漱,所以當(dāng)我讀到一個(gè)市委書記下鄉(xiāng)考察時(shí)所記錄的母親們時(shí)箭养,我早已哽咽成了一個(gè)淚人。這些偉...
    知更鳥and花妖閱讀 350評(píng)論 0 1
  • 前段時(shí)間聽(tīng)網(wǎng)上一個(gè)講英語(yǔ)寫作的課哥牍,黃老師說(shuō)露懒,對(duì)于學(xué)生的寫作,老師要盡量減少學(xué)生的不確定性砂心。 比如學(xué)生作文的書寫懈词,要...
    啊攀攀了閱讀 593評(píng)論 4 3
  • 有的人家已開始升火煮早飯了,裊裊炊煙從煙囪中婀娜的漫出來(lái)辩诞,伴著清晨微微的輕風(fēng)又慵懶的飄向遠(yuǎn)方坎弯,最后也消失在天空中。...
    風(fēng)過(guò)無(wú)痕心易冷閱讀 184評(píng)論 0 0
  • 我們要經(jīng)常整理一下自己的生活译暂,看看哪些是我們已擁有卻常常忽視的抠忘, 那些是我們得不到卻一直苦苦追尋的。那些被我們忽視...
    Rita愛(ài)閱讀 209評(píng)論 0 1