快速了解Maven Life Cycle
程序员文章站
2022-06-17 08:00:54
...
快速了解Maven Life Cycle
Maven命令
Maven命令的格式如下:
# options用来指定运行时参数
# goals用来表示plugin的特定的任务
# phases用来表示Maven Life Cycle的某个阶段
mvn [options] [<goal(s)>] [<phase(s)>]
运行mvn --help
可以查看options参数说明。
在IntellijIDEA的右边栏点击Maven Projects,展开Lifecycle可以查看Maven Life Cycle有哪些phase,展开Plugins可以查看指定Maven插件有哪些goal。
Maven Life Cycle
Maven默认有3个Life Cycle:
-
clean
清理项目 -
default
构建测试和部署项目 -
site
项目site文档
实践上,都是clean
和default
Life Cycle一起使用,很少使用site
。
常见的Life Cycle按照顺序包括:
-
clean
- 清理项目和删除target目录
-
validate
- 验证项目是否可以构建 -
compile
- 编译源代码 -
test-compile
- 编译测试代码 -
test
- 运行单元测试 -
package
- 打包 -
integration-test
- 运行集成测试 -
verify
- 检查构建结果和集成测试结果 -
install
- 在本地Maven缓存中安装构建好的jar包 -
deploy
- 部署jar包到Nexus
当运行Maven Life Cycle的后面的phase时,默认会包含前面的phase。比如运行mvn clean package
时,会自动运行前面的validate
, compile
, test-compile
和test
phase。
完整的Life Cycle参见:
常见的Maven命令
-
mvn clean install
- 构建测试打包,不部署 -
mvn clean test
- 只构建和单元测试,不打包 -
mvn clean verify
- 构建测试打包,不安装和部署 -
mvn clean deploy
- 构建测试打包安装和部署
为Maven Plugin指定phase
Maven Plugin的各个execution(包含一个或多个goal)一般有一个默认的phase ,但是也可以为execution指定另外个phase。
示例:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.2</version>
<executions>
<!-- default phase is initialize -->
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<!-- change phase from verify to test -->
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
当运行mvn clean test
时,上面示例的JaCoCo插件会在initialize
phase准备和运行JaCoCo Agent,在运行单元测试时收集测试覆盖率信息,并在test
phase时根据收集到的测试覆盖率信息生成测试覆盖率报告。
参考文档
上一篇: Qt java类型容器类的迭代
下一篇: Qt的容器类——QList