474 字
2 分钟
maven之Build Lifecycle, Phases, and Goals

参考链接

[Maven Build Lifecycle, Phases, and Goals——JouneyDev@Pankaj](https://www.journaldev.com/33659/maven-build-lifecycle-phases-goals)

Introduction to the Build Lifecycle——Apache Maven Project

Plugin Bindings for default Lifecycle Reference——Apache Maven Project

maven之Build Lifecycle, Phases, and Goals

maven生命周期

maven内置的Build生命周期:
  1. default: 处理工程的构建和部署
  2. clean: 处理工程清理
  3. site: 处理工程网站文档的创建

maven Build阶段

以下是default的Build生命周期,即生命周期的阶段:
  • validate
  • compile
  • test
  • package
  • verify
  • install
  • deploy

Build的顺序是由上到下,当我们运行一个maven命令时,也就是我指定了一个阶段去执行。

Any maven build phases that come before the specified phase is also executed. For example, if we run mvn package then it will execute validate, compile, test, and package phases of the project.

任何maven build阶段在指定阶段后也会被执行,例如我们运行一个 <font style="color:#37474F;">mvn package</font> 则它会执行工程的validate、compile,、test,和package阶段

maven build goals

> 一个build阶段是一个goals的集合组成,maven goals代表指定任务,有助于工程的构建和管理。 >

有时候maven goals不一定是maven的阶段,即不一定默认的生命周期,也可能是插件,有时候经常会pom.xml中加入这些,这些插件可能是第三方开发的,有助于的我们构建goals

Terminal window
mvn plugin-prefix:goal
mvn plugin-group-id:plugin-artifact-id[:plugin-version]:goal

以下也是一个goal,但是不属于maven阶段,用于执行依赖树

Terminal window
mvn dependency:tree

Build生命周期中POM的作用

默认的Build生命周期通常是够用的,但是你也可以构造一个maven build在工程中,在POM中 标签为`packaging` 用于构造maven build,一些有效的packaging如 `jar` 、war和`ear` ,或者 `pom` ,不指定packaging,则默认是 `jar` ,每一个packaging都包含一些goal,用于绑定一个特定的生命周期, `jar` 会绑定goal去build生命周期。
Phaseplugin
process-resourcesresources
compilecompiler
process-test-resourcesresources
test-compilecompiler
testsurefire
packagejar
installinstall
deploydeploy
maven之Build Lifecycle, Phases, and Goals
https://iszengmh.pages.dev/posts/maven之build-lifecycle-phases-and-goals/
作者
Rise Zeng
发布于
2019-08-30
许可协议
CC BY-NC-SA 4.0