Maven 命令深度理解
1、前言
Maven 命令看起来简单,一学即会 。其实,Maven 命令底层是插件的执行过程。了解插件和插件目标才有助于深刻的理解 Maven命令。
2、插件与命令的关系
Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成。
Maven 实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。所以,Maven 命令都是由插件来执行的。
3、Maven 命令的分类
Maven 提供了两种类型的命令。一种必须在项目中运行,视为项目命令;另外一种则不需要,视为全局命令。
4、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。