Maven 构建生命周期,阶段和目标
什么是Maven构建生命周期?
当我们构建一个Maven项目时,它根据项目pom.xml配置和命令行选项执行一组明确定义的任务。这个标准的任务集创建了Maven构建生命周期。明确定义生命周期的好处是我们只需记住一些命令集来编译、构建、安装和部署我们的项目。推荐阅读:20+ Maven命令和选项(备忘单)。
内置的构建生命周期
有三个内置的构建生命周期。
-
- 默认:处理项目的构建和部署
-
- 清理:处理项目的清理工作
- 站点:处理项目站点文档的创建
Maven 构建阶段
Maven构建生命周期经历一系列阶段,它们被称为构建阶段。例如,默认的生命周期由以下阶段组成。
- validate
- compile
- test
- package
- verify
- install
- deploy
构建阶段按顺序执行。当我们运行maven构建命令时,我们指定要执行的阶段。在指定阶段之前的所有maven构建阶段也会被执行。例如,如果我们运行mvn package,则会执行项目的验证、编译、测试和打包阶段。
Maven 构建目标
构建阶段由一组目标组成。Maven目标代表着对项目构建和管理的具体任务。有时,一个Maven目标并不绑定到构建阶段。我们可以通过命令行执行这些目标。执行目标的语法是:
$ mvn plugin-prefix:goal
$ mvn plugin-group-id:plugin-artifact-id[:plugin-version]:goal
以下是一个示例,用于在命令行执行依赖树目标。它不属于任何构建阶段的一部分。
mvn dependency:tree
构建生命周期中POM的角色
通过命令行执行的Maven构建会运行一系列的阶段和目标。pom.xml 配置在设置项目构建周期方面起到了重要作用。pom.xml 文件中的 packaging 值定义了要由 Maven 构建执行的目标集合。例如,如果是 jar,则将执行以下阶段和目标。
Phase | Goal |
---|---|
process-resources | resources:resources |
compile | compiler:compile |
process-test-resources | resources:testResources |
test-compile | compiler:testCompile |
test | surefire:test |
package | jar:jar |
install | install:install |
deploy | deploy:deploy |
我们还可以使用pom.xml文件中的插件元素来配置目标。当您创建了自定义插件并希望执行特定的构建阶段目标时,这通常是必需的。
参考资料
- Apache.org Doc