Maven的生命周期:
講解Maven測(cè)試篇之前將首先介紹一下Maven生命周期的相關(guān)概念,如果你熟知這部分概念可以略過(guò)此小節(jié)內(nèi)容。
大多數(shù)時(shí)候,我們?cè)跇?gòu)建一個(gè)項(xiàng)目時(shí),不外乎是對(duì)其進(jìn)行清理、編譯、測(cè)試和部署等操作。對(duì)于大多數(shù)項(xiàng)目,我們每次都要重復(fù)這些主要的流程,而Maven正是對(duì)這些必要的構(gòu)建過(guò)程進(jìn)行了抽象,它以項(xiàng)目的清理、初始化、編譯、測(cè)試、打包、部署等構(gòu)建步驟作為項(xiàng)目生命周期的各個(gè)階段。
每個(gè)Maven項(xiàng)目,都有三個(gè)相互獨(dú)立的生命周期,其中包括:
clean生命周期:負(fù)責(zé)項(xiàng)目的清理工作;
default生命周期:負(fù)責(zé)項(xiàng)目的部署;
site生命周期:負(fù)責(zé)創(chuàng)建項(xiàng)目的文檔站點(diǎn);
其中每個(gè)生命周期又包含不同的階段,例如clean生命周期下有pre-clean、clean和post-clean三個(gè)階段,分別負(fù)責(zé)項(xiàng)目清理前的工作、清理上次構(gòu)建的項(xiàng)目和項(xiàng)目清理后的工作,這些階段是順序執(zhí)行的,也就是說(shuō),當(dāng)你執(zhí)行pre-clean階段的時(shí)候,clean和post-clean階段不會(huì)被執(zhí)行,當(dāng)你執(zhí)行clean階段的時(shí)候,pre-clean階段和clean階段會(huì)被執(zhí)行,post-clean階段不會(huì)被執(zhí)行,當(dāng)你執(zhí)行post-clean階段時(shí)候,pre-clean、clean和post-clean這三個(gè)階段都會(huì)依次被執(zhí)行。同理,default生命周期和site生命周期下也分為各個(gè)不同的階段,這些階段和clean生命周期下的各個(gè)階段一樣,后面階段的執(zhí)行依賴于前面的階段執(zhí)行。
此時(shí)你可能認(rèn)為,當(dāng)執(zhí)行default生命周期下的某個(gè)階段時(shí),clean生命周期下的所有階段也會(huì)被執(zhí)行,其實(shí)并非這樣。正如之前所說(shuō),Maven項(xiàng)目的每個(gè)生命周期是相互獨(dú)立的,執(zhí)行某個(gè)生命周期下的某個(gè)階段,不會(huì)對(duì)另外兩個(gè)生命周期下的任何階段產(chǎn)生影響。
如果要對(duì)Maven生命周期下的某個(gè)階段進(jìn)行調(diào)用,運(yùn)行相應(yīng)的Maven命令即可。例如,調(diào)用clean生命周期下的clean階段,運(yùn)行如下命令:
mvn clean
此時(shí)clean 生命周期下的pre-clean和clean階段將被執(zhí)行。
如果要調(diào)用de