生命週期(life-cycle)是由階段(Phase)組成的,咱們敲入的命令沒法直接觸摸到某生命週期,由於這不是咱們控制的,是由MAVEN自身控制的,咱們只能摸到某個生命週期的某個階段(Phase)。maven
好比最多見的命令 mvn clean ,他其實要maven作的不是執行Clean 生命週期(你摸不到Clean生命週期),而是執行Clean生命週期的clean 階段。ide
由於Clean 生命週期有3種階段 (pre-clean / clean / post-clean),而maven約定爲,執行某階段必定執行前面全部階段post
因此 mvn clean 命令 等效於 mvn pre-clean+ mvn cleanspa
mvn post-clean 命令等效於 mvn pre-clean + mvn clean + mvn post-clean.orm
回到David PPT裏面的那個例子,那張PPT slide實際上表明瞭maven 的另一個生命週期 ,也就是赫赫有名的Default 生命週期生命週期
這個生命週期很長很長,咱們也不必知道他所有細節,咱們只須要知道如下結論:it
mvn install 命令 (咱們命令指向了Default生命週期的install階段) 其實是讓maven自身跑完Default生命週期的(validate階段+generate-sources階段+process-sources階段+……+install階段)class
總之,2句話歸納就是date
(1)人工鍵入命令老是指向某生命週期的某階段
(2) maven 引擎根據你指向的階段Pn去跑完 階段所在的生命週期的(某Life-Cycle) 該階段以前的 全部階段(P1+P2+…+Pn-1)。