一个完整的项目构建过程通常包括清理,编译,测试,打包,集成测试,部署等等步骤,Maven从中抽取了一套完整的,易扩展的生命周期。Maven的生命周期是抽象的,其中的具体任务都交给可插拔的插件来完成。Maven为大多数构建任务编写并绑定了默认的插件,如针对编译的插件:maven-compiler-plugin。Maven默认的插件在目录 .m2/repository/org/apache /maven/plugins下可以找到。用户也可以自行配置或编写插件。
Maven定义了三套基本的生命周期:clean,default,site,每套生命周期都包含一些有序的阶段(phase)。三套生命周期相互独立,但各个生命周期中的phase却是有序的,且后面的phase依赖于前面的phase。执行某个phase时,其前面的phase会顺序执行,但不会触发另外两套生命周期中的任何phase。
1. 生命周期
1. clean:用于清理项目,包含3个阶段。
2. default:用于构建项目,包含23个阶段。
3. site:用于建立项目站点,包含4个阶段。
1.1 clean
clean生命周期包含以下3个phase:
1.2 default
default生命周期是Maven中最为核心的,它包含了构建项目时所需要执行的所有步骤。主要包含以下23个phase:
1.3 site
site生命周期包含以下4个phase:
2. Maven插件
Maven的生命周期和phase是抽象的,实际上需要依赖具体的插件来完成任务。一个插件包含了多个goal,Maven提供配置文件来将生命周期中的某个phase绑定到一个插件的某个goal上,从而使得phase可以顺利运行。
Maven支持直接运行插件,命令如下:
mvn dependency:copy-dependencies
以上命令执行了dependency插件的copy-dependencies目标。