mvn install 和 mvn verify 之间的区别

💡 原文中文,约1300字,阅读约需3分钟。
📝

内容提要

Apache Maven是一个构建管理工具,提供了结构化的方法来管理项目的构建生命周期。mvn install用于将项目构建的产物安装到本地Maven仓库中,mvn verify用于验证项目是否符合质量标准和规则。mvn verify执行质量检查,如集成测试和自定义检查,mvn install用于在开发过程中共享工件。

🔎

延伸解读

阶段顺序决定命令行为

Maven默认生命周期中,verify阶段排在install之前。因此运行mvn install时,会先执行validate到verify的所有阶段,再执行install。这意味着install命令实际上包含了verify的质量检查。如果只想验证项目而不安装到本地仓库,应使用mvn verify;如果确定需要安装,直接运行mvn install即可,无需先单独执行verify。

verify的检查内容可扩展

verify阶段本身不执行具体检查,而是为插件提供运行验证的时机。文章指出,插件可能在此阶段执行集成测试、代码质量检查、静态分析等。因此mvn verify的实际效果取决于项目pom.xml中绑定的插件配置。如果项目未配置任何验证插件,verify可能仅执行默认的轻量检查,不会带来额外的质量保障。

install的本地共享作用

mvn install将构建产物安装到本地Maven仓库(~/.m2/repository),使同一台机器上的其他项目可以通过依赖坐标引用该产物,无需每次重新构建。这一特性适合多模块或本地联调场景。但需注意,install仅影响本地仓库,不会将产物发布到远程仓库供团队其他成员使用。

❓

Q&A

mvn install 和 mvn verify 的主要区别是什么?

mvn install 用于将项目构建的产物安装到本地 Maven 仓库,供其他项目引用;mvn verify 用于验证项目是否符合质量标准和规则,执行集成测试等质量检查。

Maven 的默认生命周期包含哪些阶段?

默认生命周期包含六个阶段:validate、compile、test、package、verify、install。

mvn verify 命令具体会执行哪些操作?

mvn verify 执行质量检查,如集成测试、代码质量检查、静态分析等,确保项目满足特定质量标准。

mvn install 命令的作用是什么?

mvn install 将项目构建的产物(如 JAR 或 WAR 文件)安装到本地 Maven 仓库(~/.m2/repository),使同一台机器上的其他项目可以引用。

Maven 定义了哪三种标准生命周期?

Maven 定义了三种标准生命周期:clean、default 和 site。clean 负责清理项目,default 用于构建和部署,site 用于创建项目站点文档。

在什么情况下应该使用 mvn verify 而不是 mvn install?

当目标是确保项目满足特定的质量标准时,建议使用 mvn verify,因为它专注于执行简单单元测试之外的质量检查,如集成测试和自定义检查。

➡️

继续阅读