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生命周期:- default: 处理工程的构建和部署
- clean: 处理工程清理
- 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 packagethen 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
mvn plugin-prefix:goalmvn plugin-group-id:plugin-artifact-id[:plugin-version]:goal以下也是一个goal,但是不属于maven阶段,用于执行依赖树
mvn dependency:treeBuild生命周期中POM的作用
默认的Build生命周期通常是够用的,但是你也可以构造一个maven build在工程中,在POM中 标签为`packaging` 用于构造maven build,一些有效的packaging如 `jar` 、war和`ear` ,或者 `pom` ,不指定packaging,则默认是 `jar` ,每一个packaging都包含一些goal,用于绑定一个特定的生命周期, `jar` 会绑定goal去build生命周期。| Phase | plugin |
|---|---|
| process-resources | resources |
| compile | compiler |
| process-test-resources | resources |
| test-compile | compiler |
| test | surefire |
| package | jar |
| install | install |
| deploy | deploy |
maven之Build Lifecycle, Phases, and Goals
https://iszengmh.pages.dev/posts/maven之build-lifecycle-phases-and-goals/