生命周期(life-cycle)是由阶段(Phase)组成的,我们敲入的命令无法直接触摸到某生命周期,因为这不是我们控制的,是由MAVEN自身控制的,我们只能摸到某个生命周期的某个阶段(Phase)

 

比如最常见的命令 mvn clean ,他其实要maven做的不是执行Clean 生命周期(你摸不到Clean生命周期),而是执行Clean生命周期的clean 阶段

因为Clean 生命周期有3种阶段 pre-clean  / clean  / post-clean),而maven约定为,执行某阶段一定执行前面所有阶段

所以 mvn clean 命令 等效于 mvn pre-clean+ mvn clean

          mvn post-clean 命令等效于 mvn pre-clean + mvn clean + mvn post-clean.

 

 

回到David PPT里面的那个例子,那张PPT slide实际上代表了maven 的另外一个生命周期 ,也就是赫赫有名的Default 生命周期

这个生命周期很长很长,我们也没必要知道他全部细节,我们只需要知道以下结论:

mvn install 命令 (我们命令指向了Default生命周期install阶段 实际上是让maven自身跑完Default生命周期的(validate阶段+generate-sources阶段+process-sources阶段+……+install阶段)

 

 

总之,2句话概括就是

1人工键入命令总是指向某生命周期的某阶段

2 maven 引擎根据你指向的阶段Pn去跑完  阶段所在的生命周期(Life-Cycle) 该阶段之前  所有阶段(P1+P2+…+Pn-1)