Maven项目构建与生命周期

更新于:2020-10-12     浏览:1537 次  

构建是什么呢?简单地说,构建就是软件项目生产的整个过程,这个过程应该包括:


(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