Maven的生命周期

178 阅读2分钟

一、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,复制到远程仓库

image.png

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以及之前所有阶段