1、Maven goal介绍

Maven对构建(build)的过程进行了抽象和定义,这个过程被称为:生命周期(lifecycle)。生命周期(lifecycle)由多个阶段(phase)组成,每个阶段(phase)会挂接一个或多个目标(goal)。goal是Maven里定义任务的最小单元,goal分为两类:一类是绑定phase的,就是执行到某个phase,那么这个goal就会触发;另外一类不绑定phase,就是单独任务。

2、Maven goal的用法

Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,而每个插件都有一个或多个目标(goal)。Maven可以通过下面的命令格式运行goal:

mvn [plugin-name]:[goal-name]

例如: mvn compiler:compile,运行 compiler 插件中的 compile goal。

3、phase和goal的不同之处

在实际工作中,我们经常使用到的一个指令是:mvn clean install,clean 是清理当前项目的 target 目录,install 是将当前项目打包并推送到本地仓库中去。这里的 clean 与 install 就是 Maven 的生命周期中的某个阶段(phase),在每个阶段实际完成工作的就是插件。Maven插件与生命周期的某个阶段相关,而每个插件都有一个或多个目标(goal),phase和goal有什么关系或区别呢?

运行某个phase的时候,必须把生命周期中的所有的前置phase都会运行一遍,而运行goal可以脱离生命周期这个概念,通过maven插件,单独的运行某个goal。例如,mvn compile 则是运行compile阶段的所有前置,而 mvn compiler:compile 则只运行compile目标。

标签: none

添加新评论