Maven 中定义了三种标准的生命周期:清理(clean),默认(default)(有时候也称为构建),和站点(site)。 这三种生命周期互相独立。每种生命周期包含一些步骤,这些步骤是有序的。
1、clean 生命周期:清理项目,包含三个步骤。
1)pre-clean:执行清理前需要完成的工作。
2)clean:清理上一次构建生成的文件。
3)post-clean:执行清理后需要完成的工作。
2、default 生命周期:构建项目,它有 20 多个步骤,下面仅例举几个重要的 phase 如下:
1)validate:验证工程是否正确,所有需要的资源是否可用。
2)compile:编译项目的源代码。
3)test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
4)Package:把已编译的代码打包成可发布的格式,比如 jar。
5)verify:运行所有检查,验证包是否有效且达到质量标准。
6)install:把包安装到 maven 本地仓库,可以被其他工程作为依赖来使用。
7)Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的 repository,使得其他的开发者或者工程可以共享。
3、site 生命周期:建立和发布项目站点,步骤如下:
1)pre-site:生成项目站点之前需要完成的工作。
2)site:生成项目站点文档。
3)post-site:生成项目站点之后需要完成的工作。
4)site-deploy:将项目站点发布到服务器。
这些生命周期中的步骤序列很重要,因为 maven 运行的时候就是按顺序来进行的。
举几个例子:
如果运行 mvn clean,那么实际上运行的是 clean 生命周期中的 pre-clean 和 clean,即 mvn clean 等同于 mvn pre-clean clean
如果运行 mvn post-clean,整个 clean 生命周期中的 pre-clean 和 clean,post-clean 都会被运行。
因此当我们运行 mvn deploy 的时候,它会自动运行 deploy 步骤之前的 compile,test,package 等一系列步骤。
maven 的生命周期是独立的,即可以直接运行 mvn clean install site 这三套生命周期, 这等于分别运行 mvn clean, mvn install, mvn site。
参考官方文档:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html