Maven命令格式
mvn [options] [<goal<s>>] [<phase<s>>]
- options: 命令行可选项
- goal: 执行目标,可以理解为任务,Maven里称之为mojo
- phase: 生命周期中的某个阶段(clean,default,site)
options
模块:A B
依赖:-> (依赖于); <-(被依赖)
构建:&
选项 | 说明 |
---|---|
-am | 构建依赖模块,假设 A -> B 则 &A = &B |
-amd | 构建依赖于该模块的模块,假设 A <- B 则 &A= &B |
-B | 非交互模式运行 |
-b <arg> | 使用指定的构建策略来构建 |
-C | 如果文件校验和不匹配则构建失败 |
例子:
# -am 例子
mvn -pl A -am package
# -amd 例子
mvn -pl A -amd package
# -B 例子
mvn -B -pl A package
# -C 例子
mvn -C -pl A package
Goals
一个plugin中可以包含多个目标(goal),目标(goal)可以绑定到lifecycle中的某一个阶段(phase),这样在执行这个阶段(phase)的时候就会调用该目标(goal)。这里说的目标(goal)是官方官方文档中所说的标准goal,如:clean compile install等
下面演示如何单独执行一个目标(goal):
mvn <groupId>:<artifactId>:<version>:<goal>
上述命令过于繁琐。maven规定了对于plugin的artifactId的如下两种形式:
maven-${prefix}-plugin
${prefix}-maven-plugin
maven规定可以使用简写的方式${prefix}来表示一个plugin,所以以下三种形式是等价的:
mvn clean
mvn clean:clean
mvn org.apache.maven.plugins:maven-clean-plugin:version:clean
自定义插件需注意如下两个步骤:
- 步骤一:在POM文件的插件配置中设置全局前缀
<build>
<plugins>
........................
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<!-- 配置全局前缀 -->
<goalPrefix>simple</goalPrefix>
</configuration>
<executions>
<execution>
<id>default-descriptor</id>
<phase>process-classes</phase>
</execution>
<execution>
<id>generated-helpmojo</id>
<goals>
<goal>helpmojo</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
- 步骤二:在setting.xml中配置插件组
<pluginGroups>
<pluginGroup>org.mortbay.jetty</pluginGroup>
</pluginGroups>
Phase
阶段 | 描述 |
---|---|
validate | 检查工程配置是否正确,完成构建过程的所有必要信息是否能够获取到。 |
compile | 编译项目源码。 |
test | 使用合适的单元测试框架来测试已编译的源代码, 这些测试不应该要求打包或部署代码。 |
package | 获取编译的代码并将其打包为可分发的格式,例如JAR。 |
integration-test | 如果需要,可将程序包处理并部署到可运行集成测试的环境中。 |
verify | 运行检查操作来验证工程包是有效的,并满足质量要求。 |
install | 安装工程包到本地仓库中,该仓库可以作为本地其他工程的依赖。 |
deploy | 在集成或发行版环境中完成,将最终包复制到远程存储库,以便与其他开发人员和项目共享。 |
clean | 清理先前构建创建的文件。 |
site | 为该项目生成站点文档。 |