Maven 命令深度理解

更新于:2020-06-23     浏览:1684 次  

Maven 命令看起来简单,一学即会 。其实,Maven 命令底层是插件的执行过程。


了解插件和插件目标才有助于深刻的理解 Maven命令。


插件与命令的关系

Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成。


Maven插件

Maven 实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。所以,Maven 命令都是由插件来执行的。


Maven 命令的分类

Maven 提供了两种类型的命令。一种必须在项目中运行,视为项目命令;另外一种则不需要,视为全局命令。


Maven 命令格式解读

Maven 命令都是由插件来执行的,其语法格式如下所示:

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

例如,下面的命令:

mvn help:effective-pom

这个命令采用了缩写的形式,其全称是这样的:

org.apache.maven.plugins:maven-help-plugin:2.2:effective-pom

此命令以分号为分隔符,包含了 groupId,artifactId,version,goal 四部分。若 groupId 为 org.apache.maven.plugins 则可以使用上述的简写形式,也就是说和下面的命令是等价的:

mvn help:effective-pom

mvn org.apache.maven.plugins:maven-help-plugin:2.2:effective-pom

都是执行了 maven-help-plugin 这个 plugin 中的 effective-pom 这个 goal。每次都要敲这么长一串命令是很繁琐的,因此才有了上述的简写的形式。


提醒:Maven 命名有要求,Maven 团队维护官方插件的保留命名方式是 maven-<myplugin>-plugin。