一、Maven生命周期
Maven有三套相互独立的生命周期,分别是clean、default和site。每个生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。
default
- clean : 在进行构建之前进行一些清理工作,移除上一次构建生成的文件。执行该命令会删除项目路径下的target文件,但是不会删除本地 maven 仓库已经生成的jar文件。
- validate,验证,验证工程是否正确,所需的信息是否完整。
- compile,编译源码,编译生成class文件,编译命令,只编译选定的目标,不管之前是否已经编译过,会在你的项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件。
- test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
- package,打包,将工程文件打包为指定的格式,例如JAR,WAR等。 这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功能进行编译,同时会在target目录下生成项目的jar/war文件。
- verify,核实,检查package是否有效、符合标准。
- install,安装至本地仓库,将包安装至本地仓库,以让其它项目依赖。 该命令包含了package命令功能,不但会在项目路径下生成class文件和jar包,同时会在你的本地maven仓库生成jar文件,供其他项目使用
- site,站点,生成项目的站点文档
- deploy,复制到远程仓库
clean生命周期
清理项目,包含三个phase。
1)pre-clean:执行清理前需要完成的工作
2)clean:清理上一次构建生成的文件
3)post-clean:执行清理后需要完成的工作
site生命周期
建立和发布项目站点,phase如下
1)pre-site:生成项目站点之前需要完成的工作
2)site:生成项目站点文档
3)post-site:生成项目站点之后需要完成的工作
4)site-deploy:将项目站点发布到服务器
二、命令行
各个生命周期相互独立,一个生命周期的阶段前后依赖。
举例如下:
1、mvn clean
调用clean生命周期的clean阶段,实际执行pre-clean和clean阶段
2、mvn test
调用default生命周期的test阶段,实际执行test以及之前所有阶段
3、mvn clean install
调用clean生命周期的clean阶段和default的install阶段,实际执行pre-clean和clean,install以及之前所有阶段