文章目录

  • 1、Maven生命周期
  • 1.1、clean生命周期
  • 1.2、default生命周期
  • 1.3、site生命周期
  • 2、Maven常用命令


1、Maven生命周期

Maven有三套生命周期系统:
1、clean生命周期
2、default生命周期
3、site生命周期

三套生命周期之间相互独立,每套生命周期包含一些阶段,阶段是有顺序的,后面的阶段依赖于前面的阶段。

1.1、clean生命周期

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

可以使用mvn clean 来调用上边的clean命令,由于后面阶段的命令依赖于前边的阶段,所以执行 mvn clean相当于执行了mvn pre-clean clean ,如果运行mvn post-clean,那么pre-clean,clean都会被运行

1.2、default生命周期

这是 Maven 的主要生命周期,被用于构建应用,包括下面的 23 个阶段:

生命周期阶段

描述

validate(校验)

校验项目是否正确并且所有必要的信息可以完成项目的构建过程。

initialize(初始化)

初始化构建状态,比如设置属性值。

generate-sources(生成源代码)

生成包含在编译阶段中的任何源代码。

process-sources(处理源代码)

处理源代码,比如说,过滤任意值。

generate-resources(生成资源文件)

生成将会包含在项目包中的资源文件。

process-resources (处理资源文件)

复制和处理资源到目标目录,为打包阶段最好准备。

compile(编译)

编译项目的源代码。

process-classes(处理类文件)

处理编译生成的文件,比如说对Java class文件做字节码改善优化。

generate-test-sources(生成测试源代码)

生成包含在编译阶段中的任何测试源代码。

process-test-sources(处理测试源代码)

处理测试源代码,比如说,过滤任意值。

generate-test-resources(生成测试资源文件)

为测试创建资源文件。

process-test-resources(处理测试资源文件)

复制和处理测试资源到目标目录。

test-compile(编译测试源码)

编译测试源代码到测试目标目录.

process-test-classes(处理测试类文件)

处理测试源码编译生成的文件。

test(测试)

使用合适的单元测试框架运行测试(Juint是其中之一)。

prepare-package(准备打包)

在实际打包之前,执行任何的必要的操作为打包做准备。

package(打包)

将编译后的代码打包成可分发格式的文件,比如JAR、WAR或者EAR文件。

pre-integration-test(集成测试前)

在执行集成测试前进行必要的动作。比如说,搭建需要的环境。

integration-test(集成测试)

处理和部署项目到可以运行集成测试环境中。

post-integration-test(集成测试后)

在执行集成测试完成后进行必要的动作。比如说,清理集成测试环境。

verify (验证)

运行任意的检查来验证项目包有效且达到质量标准。

install(安装)

安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖。

deploy(部署)

将最终的项目包复制到远程仓库中与其他开发者和项目共享。

1.3、site生命周期

site生命周期的主要作用是建立和发布站点,主要包含以下4个步骤:
  1、pre-site:执行一些需要在生成站点文档之前完成的工作;
  2、site:生成项目的站点文档;
  3、post-site: 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备;
  4、site-deploy:将生成的站点文档部署到特定的服务器上。
这里经常用到的是site阶段和site-deploy阶段,用以生成和发布Maven站点。

2、Maven常用命令
# 完成源代码的编译,编译后的class文件输出到target目录下
mvn compile 
# 测试命令
mvn test
# 工程清理命令,执行clean会删除target目录及其下的内容
mvn clean
# 工程打包,将项目打成jar包
mvn package
# 工程的安装命令,将项目打成的jar包发布到本地仓库
mvn install 
# 将打好的包发布到远程仓库
mvn deploy