Maven 生命周期

Maven 生命周期

Maven 生命周期是為了對(duì)所有的構(gòu)建過(guò)程進(jìn)行抽象和統(tǒng)一轰异,開(kāi)發(fā)了一套高度完善的岖沛、易擴(kuò)展的生命周期。這個(gè)生命周期包含了項(xiàng)目的清理搭独、初始化婴削、編譯、測(cè)試牙肝、打包唉俗、集成測(cè)試嗤朴、驗(yàn)證、部署和站點(diǎn)生成等幾乎所有構(gòu)建步驟虫溜。

Maven 生命周期本身不做任何實(shí)際的工作雹姊,實(shí)際的任務(wù)都交給插件來(lái)完成。這樣的設(shè)計(jì)衡楞,既保證了 Maven 整體框架的輕便容为,也最大程度的擴(kuò)展性。

Maven 生命周期抽象了構(gòu)建的各個(gè)步驟寺酪,明確了它們的邏輯次序坎背,但沒(méi)有提供具體的實(shí)現(xiàn),通過(guò)插件來(lái)完成實(shí)際的工作寄雀,每個(gè)構(gòu)建步驟都可以綁定一個(gè)或者多個(gè)插件行為得滤。為了讓 Maven 開(kāi)箱即用,Maven 為大多數(shù)構(gòu)建步驟編寫(xiě)并綁定了默認(rèn)插件盒犹。比如針對(duì)編譯的插件有 maven-compiler-plugin懂更,針對(duì)測(cè)試的插件有 maven-surefire-plugin 等。

生命周期步驟

在 Maven 中急膀,有三套相互獨(dú)立的生命周期沮协,分別是 cleandefaultsite卓嫂。

  • clean:clean 生命周期的目的是清理項(xiàng)目慷暂;
  • default:default 生命周期的目的是構(gòu)建項(xiàng)目;
  • site:site 生命周期的目的是建立項(xiàng)目站點(diǎn)晨雳;

每個(gè)生命周期包含一些階段(phase)行瑞,這些階段是有順序的,并且后面的階段依賴于前面的階段餐禁。clean 生命周期為例血久,它包含的階段有 pre-cleancleanpost-clean

  • 當(dāng)我們調(diào)用 pre-clean 的時(shí)候帮非,只有 pre-clean 階段執(zhí)行氧吐;
  • 當(dāng)我們調(diào)用clean 的時(shí)候,pre-cleanclean階段會(huì)按順序執(zhí)行末盔;
  • 當(dāng)我們調(diào)用 post-clean 的時(shí)候筑舅,pre-cleancleanpost-clean 都會(huì)按順序執(zhí)行庄岖;

和生命周期階段的前后依賴關(guān)系相比豁翎,clean角骤、defaultsite 這三套生命周期本身是相互獨(dú)立的隅忿,我們可以僅僅調(diào)用 clean 生命周期的某個(gè)階段心剥,或者僅僅調(diào)用 default 生命周期的某個(gè)階段,而不會(huì)對(duì)其它生命周期產(chǎn)生任何影響背桐。

clean 生命周期

階段 執(zhí)行清理前需要完成的工作
pre-clean 執(zhí)行清理前需要完成的工作
clean 清理構(gòu)建生成的文件
post-clean 執(zhí)行清理后需要完成的工作

default 生命周期

階段 執(zhí)行清理前需要完成的工作
validate -
initialize -
generate-sources -
process-sources -
generate-resources -
process-resources 處理項(xiàng)目主資源('src/main/resources')文件优烧,如進(jìn)行變量替換等工作
compile 編譯項(xiàng)目的源碼
process-classes -
generate-test-sources -
process-test-sources 處理項(xiàng)目測(cè)試資源('src/test/resources')文件
generate-test-resources -
process-test-resources -
test-compile 編譯項(xiàng)目測(cè)試代碼
process-test-classes -
test 使用單元測(cè)試框架運(yùn)行測(cè)試,測(cè)試代碼不會(huì)被打包或部署
prepare-package -
package 打包編譯好的代碼
pre-integration-test -
integration-test -
post-integration-test -
verify 包校驗(yàn)操作
install 安裝包到Maven本地倉(cāng)庫(kù)
deploy 將包部署到遠(yuǎn)程倉(cāng)庫(kù)

site 生命周期

階段 執(zhí)行清理前需要完成的工作
pre-site 在生成項(xiàng)目站點(diǎn)前執(zhí)行一些工作
site 生成項(xiàng)目站點(diǎn)文檔
post-site 在生成項(xiàng)目站點(diǎn)后執(zhí)行一些工作
site-deploy 將生成項(xiàng)目站點(diǎn)發(fā)布到服務(wù)器上

常用命令詳解

我們通過(guò) Maven 命令行來(lái)編譯链峭、測(cè)試和打包程序的命令畦娄,而這些命令其實(shí)就是完成了生命周期的操作。

  • mvn clean:調(diào)用插件完成 clean 生命周期的 clean 階段的操作弊仪,實(shí)際調(diào)用的是 pre-cleanclean 兩個(gè)階段熙卡;
  • mvn test:調(diào)用 default 生命周期對(duì)應(yīng)的階段的插件,完成從 validatetest 階段的所有操作驳癌;
  • mvn clean install:調(diào)用 clean 周期的 clean 階段和 defaultinstall 階段,實(shí)際調(diào)用的是 pre-cleanclean 以及 validateinstall 階段;
  • mvn clean deploy site-deploy:調(diào)用完整的三個(gè)生命周期所有階段(post-clean 不被調(diào)用);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锐涯,一起剝皮案震驚了整個(gè)濱河市纹腌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌广凸,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侥袜,死亡現(xiàn)場(chǎng)離奇詭異送漠,居然都是意外死亡尼酿,警方通過(guò)查閱死者的電腦和手機(jī)裳擎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門妈倔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)盯蝴,“玉大人,你說(shuō)我怎么就攤上這事听怕∨跬Γ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵尿瞭,是天一觀的道長(zhǎng)闽烙。 經(jīng)常有香客問(wèn)我,道長(zhǎng)声搁,這世上最難降的妖魔是什么黑竞? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任捕发,我火速辦了婚禮,結(jié)果婚禮上摊溶,老公的妹妹穿的比我還像新娘爬骤。我一直安慰自己充石,他們只是感情好莫换,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著骤铃,像睡著了一般拉岁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惰爬,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天喊暖,我揣著相機(jī)與錄音,去河邊找鬼撕瞧。 笑死陵叽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的丛版。 我是一名探鬼主播巩掺,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼页畦!你這毒婦竟也來(lái)了胖替?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤豫缨,失蹤者是張志新(化名)和其女友劉穎独令,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體好芭,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡燃箭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了舍败。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片遍膜。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖瓤湘,靈堂內(nèi)的尸體忽然破棺而出瓢颅,到底是詐尸還是另有隱情,我是刑警寧澤弛说,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布挽懦,位于F島的核電站,受9級(jí)特大地震影響木人,放射性物質(zhì)發(fā)生泄漏信柿。R本人自食惡果不足惜冀偶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望渔嚷。 院中可真熱鬧进鸠,春花似錦、人聲如沸形病。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)漠吻。三九已至量瓜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間途乃,已是汗流浹背绍傲。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留耍共,地道東北人烫饼。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像试读,于是被迫代替她去往敵國(guó)和親杠纵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

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

  • 什么是生命周期?在Maven出現(xiàn)之前伊履,項(xiàng)目構(gòu)建的生命周期就已經(jīng)存在韩容,軟件開(kāi)發(fā)人員每天都在對(duì)項(xiàng)目進(jìn)行清理、編譯唐瀑、測(cè)試...
    yust5273閱讀 259評(píng)論 0 0
  • 何為生命周期 在 Maven 出現(xiàn)之前群凶,項(xiàng)目構(gòu)建的生命周期就已經(jīng)存在。軟件開(kāi)發(fā)人員每天都在對(duì)項(xiàng)目進(jìn)行清理哄辣、編譯请梢、測(cè)...
    杰哥長(zhǎng)得帥閱讀 293評(píng)論 0 2
  • Maven生命周期詳解 Maven——生命周期與插件 一、生命周期 Maven有三套相互獨(dú)立的生命周期力穗,請(qǐng)注意這里...
    晚歌歌閱讀 966評(píng)論 0 1
  • 概述Maven出現(xiàn)以前毅弧,項(xiàng)目構(gòu)建的生命周期就已經(jīng)存在了。軟件開(kāi)發(fā)人員每天都在對(duì)項(xiàng)目進(jìn)行清理当窗、編譯够坐、測(cè)試及部署,而且...
    SonyaBaby閱讀 956評(píng)論 0 0
  • Maven的生命周期是對(duì)所有構(gòu)建過(guò)程的抽象和統(tǒng)一。包含了項(xiàng)目的清理元咙、初始化梯影、編譯、測(cè)試庶香、打包甲棍、集成測(cè)試、驗(yàn)證赶掖、部署...
    洛楊凡閱讀 312評(píng)論 0 0