生命周期(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)。