本地mvn 命令打包中,每个命令 都是由 生命周期定义的。生命周期是一种标准。
三种生命周期
maven有独立的三套生命周期,
1.清理生命周期(Clean Lifecycle):实现项目清理
2.默认生命周期(Default Lifecycle):项目构建的核心部分,包括编译、测试、打包、部署等
3.站点生命周期(Site Lifecycle):生成项目报告、站点,发布站点
Phase(阶段)
每套生命周期由一组阶段(phase)构成,本套生命周期内,phase之前的阶段都会执行。三套生命周期相互独立。
Clean Lifecycle
pre-clean 执行一些需要在clean之前完成的工作;
clean 移除所有上一次构建生成的文件;
post-clean 执行一些需要在clean之后立刻完成的工作;
Site Lifecycle
pre-site 执行一些需要在生成站点文档之前完成的工作;
site 生成项目的站点文档;
post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备;
site-deploy 将生成的站点文档部署到特定的服务器上
Default Lifecycle(常用)
validate
process-resources 复制并处理资源文件,至目标目录,准备打包
compile 编译项目的源代码
process-test-resources 复制并处理资源文件,至目标测试目录;
test-compile 编译测试源代码;
process-test-classes
test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署
prepare-package
package 接受编译好的代码,打包成可发布的格式,如 JAR ;
install 将包安装至本地仓库,以让其它项目依赖;
deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享
另外需要注意的是,这些对项目及进行编译、测试、打包、运行、部署等工作在Maven中都是抽象的定义,Maven自身是不会实际负责这些工作的,而是交由插件来实现。意思就是说,Maven命令的实际工作执行者是各种各样的插件,通过插件提供的命令与Maven提供的阶段相互绑定来完成相应的工作。因此Maven的插件机制是完全依赖于Maven的生命周期的,要想运用好这些Maven命令插件,理解Maven的生命周期也就变得十分重要。
mvn clean install
使用了两套生命周期的命令
参考