mvn install 和 mvn verify 之间的区别
Apache Maven是一个强大的构建管理工具,它提供了一种结构化的方法来管理项目的构建生命周期。Maven 构建由生命周期组成,它清楚地定义了项目的构建和分发方式。
在构建过程中发挥关键作用的两个非常有用的命令是mvn install和mvn verify。在本教程中,我们将比较和对比这两个命令,了解它们之间的差异。
Maven 生命周期
Maven 定义了三种标准生命周期——clean 、default和site——其中每个生命周期都有不同的目的:
- clean生命周期负责清理项目。
- 默认生命周期用于构建和部署。
- 站点生命周期用于创建项目的站点文档。
每个生命周期由阶段组成,每个阶段代表生命周期中的一个阶段。
Maven的 默认生命周期
默认生命周期处理构建过程,从项目编译开始,到工件部署结束。它由六个阶段组成:
- validate:验证项目以确保所有必要的信息可用于构建。
- compile:将源代码编译为字节码。
- test:执行单元测试以确保代码的正确性。
- package:编译后的代码打包成 JAR 或 WAR 文件,具体取决于项目类型。
- verify:运行额外的验证检查,通常是集成测试或插件指定的测试。
- install:打包的工件安装到本地 Maven 存储库~/.m2/repository中,使其可用于同一计算机上的其他项目。
当运行命令时,我们只需要调用我们想要执行的最后一个构建阶段。例如,运行mvn test将按顺序执行validate、compile和test阶段。
mvn install和mvn verify区别
在Maven中,mvn install和mvn verify是两个不同的构建命令,它们之间有一些关键的区别
mvn install:
- 该命令用于将项目构建的产物(通常是JAR文件或WAR文件)安装到本地Maven仓库中。这样,其他本地项目可以引用这个已经构建的项目,而不必每次都重新构建。
- 该命令执行构建生命周期的install阶段,该阶段负责将项目构建产物安装到本地仓库。
mvn verify:
- 该命令用于验证项目是否符合质量标准和各种规则。它通常在构建周期的较后阶段执行,通常在verify阶段执行。在这个阶段,插件可能会运行各种验证,例如执行集成测试、检查代码质量、运行静态分析等。
- verify阶段通常是构建生命周期的最后一个阶段,它确保项目的构建产物不仅被成功构建和安装,而且通过了一系列质量和验证的步骤。
总结:
mvn install和mvn verify都有助于默认生命周期并共享公共阶段,但它们的用途略有不同:
- mvn verify专注于执行简单单元测试之外的质量检查,例如集成测试和通过插件配置的自定义检查。当目标是确保项目满足特定的质量标准时建议这样做。
- mvn install主要用于将项目的工件安装到本地存储库中。它经常在开发过程中用于在同一台机器上的项目之间共享工件。