Maven项目构建与生命周期
构建是什么呢?简单地说,构建就是软件项目生产的整个过程,这个过程应该包括:
(1)文档和代码的生成(有些项目会使用代码自动生成工具,比如数据库访问代码的逆向工程)
(2)代码的编译、测试和打包
(3)打包好的代码进行分发或者部署
由此可见,项目的构建可绝不仅仅是编译软件这件事情。除了写代码,在项目层面做的大部分工作,都包含在构建的过程中。
有了Maven这个开源利器,构建中的这些过程都能够进行良好的定义,通过生命周期的形式进行定义,而且Maven能够帮我们串起来形成一个自动构建过程,这样比我们手动执行要高效得多。
注意,Maven 生命周期不是指的软件生命周期,后者是软件的产生直到报废或停止使用的生命周期
项目构建的生命周期
如上所示,构建就是软件项目生产的整个过程,这个过程通过生命周期来贯穿。
一个典型的 Maven 构建(build)生命周期是由以下几个阶段的序列组成的:
阶段 | 处理 | 描述 |
---|---|---|
验证 validate | 验证项目 | 验证项目是否正确且所有必须信息是可用的 |
编译 compile | 执行编译 | 源代码编译在此阶段完成 |
测试 Test | 测试 | 使用适当的单元测试框架(例如JUnit)运行测试。 |
包装 package | 打包 | 创建JAR/WAR包如在 pom.xml 中定义提及的包 |
检查 verify | 检查 | 对集成测试的结果进行检查,以保证质量达标 |
安装 install | 安装 | 安装打包的项目到本地仓库,以供其他项目使用 |
部署 deploy | 部署 | 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程 |
Maven标准生命周期
项目除了构建以外,还包括构建之前的项目清理,以及构建之后项目文档的创建。所以,Maven有三套相互独立的生命周期,分别是clean、default和site。每个生命周期包含一些阶段,阶段是有顺序的,后面的阶段依赖于前面的阶段。
一个完整的项目构建过程通常包括清理、编译、测试、打包、集成测试、验证、部署等步骤,Maven从中抽取了一套完善的、易扩展的生命周期。Maven的生命周期是抽象的,其中的具体任务都交由插件来完成。Maven为大多数构建任务编写并绑定了默认的插件,如针对编译的插件:maven-compiler-plugin。当然,用户也可自行配置或编写插件。
Maven 有以下三个标准的生命周期:
- 1、clean:项目清理的处理
- 2、default(或 build):项目部署的处理
- 3、site:项目站点文档创建的处理
Maven Clean 生命周期
清洁(clean)生命周期包括以下三个阶段:
- 预清洁(pre-clean):执行实际项目清理之前所需的流程
- 清洁(clean) :删除以前构建生成的所有文件
- 后清洁(post-clean):执行完成项目清理所需的流程
在一个生命周期中,运行某个阶段的时候,它之前的所有阶段都会被运行,也就是说,如果执行 mvn clean 将运行以下两个生命周期阶段:
pre-clean, clean
如果我们运行 mvn post-clean ,则运行以下三个生命周期阶段:
pre-clean, clean, post-clean