欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

快速了解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文档

实践上,都是cleandefaultLife 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-compiletest 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插件会在initializephase准备和运行JaCoCo Agent,在运行单元测试时收集测试覆盖率信息,并在test phase时根据收集到的测试覆盖率信息生成测试覆盖率报告。

参考文档