maven项目构建的生命周期

1maven项目构建的生命周期

1.1 生命周期是什么

  • Maven出现之前,项目构建的生命周期就已经存在,软件开发人员每天都在对项目进行清理,编译,测试及部署。虽然大家都在不停地做构建工作,但公司和公司间,项目和项目间,往往使用不同的方式做类似的工作。
  • Maven的生命周期就是为了对所有的构建过程进行抽象和统一。Maven从大量项目和构建工具中学习和反思,单后总结了一套高度完美的,易扩展的生命周期。这个生命周期包含了项目的清理,初始化,编译,测试,打包,集成测试,验证,部署和站点生成等几乎所有构建步骤。
  • Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际工作,在Maven的设计中,实际任务(如源代码编译)都交由插件来完成。

1.2 maven的三套生命周期

  • maven拥有三套相互独立的生命周期,分别是cleandefaultsiteclean 生命周期的目的是清理项目 default 生命周期的作用是构建项目 site 生命周期的目的是构建项目站点 。

clean生命周期

  • clean生命周期的目的是清理项目,它包含三个阶段:
  1. pre-clean 执行一些清理前需要完成的工作;
  2. clean 清理上一次构建生成的文件;
  3. post-clean 执行一些清理后需要完成的工作;

default生命周期

  • default生命周期定义了真正构建项目需要执行的所有步骤,它是所有生命周期中最核心的部分。其中的重要阶段如下:
  1. compile :编译项目的源码,一般来说编译的是src/main/java目录下的java文件至项目输出的主classpath目录中;
  2. test :使用单元测试框架运行测试,测试代码不会被打包或部署;
  3. package :接收编译好的代码,打包成可以发布的格式,如jarwar
  4. install: 将包安装到本地仓库,共其他maven项目使用;
  5. deploy :将最终的包复制到远程仓库,供其他开发人员或maven项目使用;

site生命周期

  • site生命周期的目的是建立和发布项目站点,maven能够基于pom文件所包含的项目信息,自动生成一个友好站点,方便团队交流和发布项目信息。该生命周期中最重要的阶段如下:
  1. site :生成项目站点文档;

2maven生命周期相关命令

我们使用以下命令可以完成maven生命周期

mvn clean:调用clean生命周期的clean阶段,清理上一次构建项目生成的文件;

mvn compile :编译src/main/java中的java代码; mvn test :编译并运行了test中内容 ;

mvn package:将项目打包成可发布的文件,如jar或者war包; mvn install :发布项目到本地仓库 ;

2.1mvn clean

clean命令的作用是清理项目编译或打包后生成的文件,具体对应maven项目中的target目录;

maven项目构建的生命周期

2.2、mvn compile

compile命令的作用是编译src/main/java中的java代码编译成可直接运行的class件。编译完成后maven项目会自动创建一个target目录来存储这些文件。

maven项目构建的生命周期

2.3mvn test

test命令的作用是编译并运行maven项目的src/test目录下的junit测试代码。编译后生成的文件:

maven项目构建的生命周期

运行日志:

maven项目构建的生命周期

2.4 mvn package

package命令是将项目打包成可以发布的包。maven项目常见的打包方式有两种,mavenjava project会打成jar包。mavenweb project会打成war包。打包完成后将生成的文件存放在target目录中。

maven项目构建的生命周期

2.5 mvn install

install命令是将当前的项目打包并发布到本地仓库中,供本地的其他maven项目使用。项目发布的路径:本地仓库路径/groupId/artifactId/

maven项目构建的生命周期

3、maven生命周期相关插件

maven的核心分发包只有几兆大小,核心包中仅仅定义了抽象的生命周期。生命周期的各个阶段都是由插件完成的,它会在需要的时候下载并使用插件,例如我们在执行 mvn compile命令时实际是在调用mavencompile插件来编译java源码:

maven项目构建的生命周期

我们使用IDEA创建maven项目后,就不需要再手动输入maven的命令来构建maven的生命周期了。IDEA给每个maven构建项目生命周期各个阶段都提供了图形化界面的操作方式。具体操作如下:

3.1 打开maven视图

依次打开:View--Tool Windows--Maven Projects

maven项目构建的生命周期

打开IDEA编辑区右侧:Maven Projects会弹出如下窗口,打开窗口中的Lifecycle即可看到相关命令。

maven项目构建的生命周期

3.2 执行命令

双击Lifecycle下的相关命令图标即可执行对应的命令。