一、Maven 构建生命周期
Maven 构建生命周期定义了一个项目构建跟发布的过程。
一个典型的 Maven 构建(build)生命周期是由以下几个阶段的序列组成的:
为了完成 default 生命周期,这些阶段(包括其他未在上面罗列的生命周期阶段)将被按顺序地执行。
Maven 有以下三个标准的生命周期:
-
clean:项目清理的处理
-
default(或 build):项目部署的处理
-
site:项目站点文档创建的处理
Clean 生命周期
当我们执行 mvn post-clean 命令时,Maven 调用 clean 生命周期,它包含以下阶段:
-
pre-clean:执行一些需要在clean之前完成的工作
-
clean:移除所有上一次构建生成的文件
-
post-clean:执行一些需要在clean之后立刻完成的工作
mvn clean 中的 clean 就是上面的 clean,在一个生命周期中,运行某个阶段的时候,它之前的所有阶段都会被运行,也就是说,如果执行 mvn clean 将运行以下两个生命周期阶段:
Default (Build) 生命周期
这是 Maven 的主要生命周期,被用于构建应用,包括下面的 23 个阶段:
有一些与 Maven 生命周期相关的重要概念需要说明:
当一个阶段通过 Maven 命令调用时,例如 mvn compile,只有该阶段之前以及包括该阶段在内的所有阶段会被执行。
不同的 maven 目标将根据打包的类型(JAR / WAR / EAR),被绑定到不同的 Maven 生命周期阶段。
Site 生命周期
Maven Site 插件一般用来创建新的报告文档、部署站点等。
-
pre-site:执行一些需要在生成站点文档之前完成的工作
-
site:生成项目的站点文档
-
post-site: 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
-
site-deploy:将生成的站点文档部署到特定的服务器上
这里经常用到的是site阶段和site-deploy阶段,用以生成和发布Maven站点
二、maven插件
Maven 生命周期的每一个阶段的具体实现都是由 Maven 插件实现的。
Maven 实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。Maven 插件通常被用来:
-
创建 jar 文件
-
创建 war 文件
-
编译代码文件
-
代码单元测试
-
创建工程文档
-
创建工程报告
下面是一些常用插件的列表:
三、maven项目模版
Maven 使用 archetype(原型) 来创建自定义的项目结构,形成 Maven 项目模板。
什么是 archetype?
archetype 也就是原型,是一个 Maven 插件,准确说是一个项目模板,它的任务是根据模板创建一个项目结构。我们将使用 quickstart 原型插件创建一个简单的 java 应用程序。