Maven 常用命令完整版速查表
引言:Maven 作为 Java 后端开发的核心构建工具,贯穿项目编译、测试、打包、依赖管理全流程。日常开发中,熟练运用 Maven 命令能大幅提升开发效率,避免因命令不熟悉、参数使用不当导致的构建失败。本文整理了 Maven 全场景常用命令,涵盖核心生命周期、依赖管理、测试打包、项目辅助等模块,重点补充了依赖清理的高级参数,所有命令可直接复制执行,适配 Java 后端高频开发场景,新手可收藏备查,老鸟可快速检索。
一、核心生命周期命令
Maven 三大核心生命周期(clean、default、site),其中 default 生命周期是日常开发最常用的,以下命令覆盖从清理到部署的全流程,建议熟练掌握。
命令
作用
常用场景
补充说明
mvn clean
删除 target 构建目录
重新构建前清理旧产物
默认删除 target,无额外参数,避免旧产物干扰新构建
mvn compile
编译 src/main/java 主代码
快速检查语法错误、验证代码编译可行性
编译后字节码输出到 target/classes 目录
mvn test
编译测试代码 + 执行单元测试
验证测试用例有效性、排查代码逻辑问题
依赖 maven-surefire-plugin 插件,测试报告存于 target/surefire-reports
mvn package
编译 → 测试 → 打包(jar/war)
生成可部署包,用于项目部署、测试环境验证
包文件存于 target 目录,默认生成 jar(普通项目)/war(web项目)
mvn install
打包后安装到本地 Maven 仓库
本地多模块项目依赖、自定义依赖复用(如自己开发的工具包)
本地仓库默认路径:~/.m2/repository,安装后其他本地项目可直接依赖
mvn deploy
将包上传到远程私服/中央仓库
团队共享依赖(如项目公共组件、工具类)
需在 pom.xml 中配置远程仓库地址(url、账号密码),否则无法上传
mvn validate
校验 POM 配置、项目结构完整性
构建前快速检查配置错误(如依赖缺失、POM 语法错误)
生命周期初始阶段,执行速度快,可快速排查基础配置问题
mvn verify
执行集成测试 + 校验包质量
正式部署前验证包有效性(如集成测试是否通过、包是否符合规范)
依赖 maven-failsafe-plugin 插件,集成测试类需以 *IT 结尾
常用组合命令(直接复制,日常开发高频)
日常开发中,单独执行单个命令场景较少,以下组合命令覆盖80%的构建场景,建议直接复制使用:
# 标准构建(清理→打包→安装),跳过测试(加速构建,避免测试耗时)
mvn clean install -DskipTests
# 强制更新快照依赖 + 构建(依赖快照版本不更新时使用,如开发中的公共组件)
mvn clean install -U -DskipTests
# 只打包不安装(生成部署包,用于服务器部署,无需安装到本地仓库)
mvn clean package -DskipTests
# 完整构建(含测试,用于正式发布前验证,确保测试用例全部通过)
mvn clean install
二、依赖管理命令
依赖管理是 Maven 的核心功能之一,日常开发中经常遇到依赖冲突、依赖损坏、依赖缺失等问题,以下命令可快速排查和解决这些问题。
基础依赖命令(必会)
命令
作用
示例
mvn dependency:tree
查看依赖树,排查依赖冲突、传递依赖
mvn dependency:tree(输出到文件:-DoutputFile=deps.txt,方便后续分析)
mvn dependency:list
列出项目所有直接/间接依赖,清晰查看依赖版本
mvn dependency:list
mvn dependency:analyze
分析未使用、缺失的依赖,优化 POM 配置
mvn dependency:analyze(可排查出冗余依赖,减少项目体积)
mvn dependency:copy-dependencies
将所有依赖 jar 复制到指定目录,方便手动引用
mvn dependency:copy-dependencies -DoutputDirectory=lib(复制到项目根目录 lib 文件夹)
mvn dependency:get
手动下载指定 GAV 依赖到本地仓库,解决依赖下载失败问题
mvn dependency:get -Dartifact=org.springframework:spring-core:5.3.23(指定 groupId:artifactId:version)
dependency:purge-local-repository
本地依赖经常出现损坏、版本错乱等问题,导致构建失败,dependency:purge-local-repository 是清理本地依赖的核心命令,以下高级参数可精准控制清理范围和行为,必记!
参数
作用
完整命令示例
使用场景
默认(无参数)
删除当前项目所有依赖,自动重新下载
mvn dependency:purge-local-repository
依赖损坏、版本错乱,需完全重置依赖(如构建时报依赖找不到、依赖校验失败)
-DreResolve=false
只删除依赖,不重新下载
mvn dependency:purge-local-repository -DreResolve=false
仅清理旧依赖,后续手动控制下载时机(如网络不佳时,先清理再手动下载)
-DactTransitively=false
仅删除直接依赖,不删除传递依赖
mvn dependency:purge-local-repository -DactTransitively=false
只想重置直接依赖(如自己配置的依赖),保留传递依赖(避免重复下载,节省时间)
-DmanualInclude="G:A"
精确指定要删除的单个/多个依赖
单个:mvn dependency:purge-local-repository -DmanualInclude="junit:junit" 多个:mvn dependency:purge-local-repository -DmanualInclude="junit:junit,org.slf4j:slf4j-api"
特定依赖损坏(如某个 jar 包损坏),无需清理所有依赖,精准定位,节省时间
依赖清理组合命令(实用版,直接复制)
结合高级参数,整理了4个高频依赖清理场景的组合命令,覆盖大部分依赖问题排查场景:
# 1. 只删除不下载(最常用,清理后手动控制下载)
mvn dependency:purge-local-repository -DreResolve=false
# 2. 精确删除指定依赖 + 不自动下载(精准清理,避免影响其他依赖)
mvn dependency:purge-local-repository -DmanualInclude="com.alibaba:fastjson" -DreResolve=false
# 3. 清理直接依赖 + 重新构建(重置直接依赖,保留传递依赖,加速构建)
mvn dependency:purge-local-repository -DactTransitively=false clean install
# 4. 清理所有依赖 + 重新下载 + 构建(一键修复所有依赖问题,适合依赖完全错乱时)
mvn dependency:purge-local-repository clean install
三、测试相关命令(含高级用法)
单元测试、集成测试是保证代码质量的关键,以下命令可灵活控制测试执行,适配不同开发场景(如跳过测试、执行单个测试用例)。
命令/参数
作用
示例
mvn test
执行所有单元测试,验证代码逻辑正确性
mvn test
-Dtest=测试类名
运行单个测试类,排查特定测试类的问题
mvn -Dtest=UserServiceTest test(UserServiceTest 为测试类名)
-Dtest=测试类名#方法名
运行单个测试方法,精准排查某个测试方法的问题
mvn -Dtest=UserServiceTest#testGetById test(testGetById 为测试方法名)
-DskipTests
跳过测试执行,仍编译测试代码(保留测试代码编译校验)
mvn clean install -DskipTests(日常开发加速构建,不影响测试代码编译)
-Dmaven.test.skip=true
不编译、不执行测试代码(最大化加速构建)
mvn clean package -Dmaven.test.skip=true(仅需生成部署包,无需测试相关操作)
mvn failsafe:integration-test
执行集成测试(测试类名以 *IT 结尾),验证模块间交互
mvn failsafe:integration-test(正式发布前必执行,验证项目整体可用性)
四、打包与扩展打包命令
项目开发完成后,需要打包为可部署格式,以下命令覆盖常规打包、源码打包、自定义打包等场景,适配不同部署需求。
命令
作用
示例
mvn jar:jar
仅打包主代码为 jar 包,不执行编译、测试(需先编译)
mvn jar:jar(适合已编译完成,仅需重新打包的场景)
mvn war:war
仅打包主代码为 war 包(web 项目),不执行编译、测试
mvn war:war(web 项目快速打包,适合已编译完成的场景)
mvn source:jar
打包源码为 jar 包,供他人查看源码(如发布公共组件)
mvn source:jar(发布到远程仓库时,通常需搭配 jar:jar 一起执行)
mvn javadoc:javadoc
生成 JavaDoc 文档,方便团队查阅接口说明
mvn javadoc:javadoc(输出到 target/site/apidocs 目录,可部署到服务器供团队查看)
mvn assembly:single
自定义打包(含依赖、配置文件、脚本等),生成 zip/tar 等格式
mvn assembly:single(需在 pom.xml 中配置 assembly.xml,定义打包规则)
mvn shade:shade
生成可执行 Uber JAR(含所有依赖),可直接运行,避免依赖缺失
mvn shade:shade(可重命名依赖包名,解决依赖冲突,适合独立运行的项目)
五、项目信息与辅助命令
日常开发中,经常需要查看项目配置、创建新项目、修改版本等,以下命令可快速完成这些辅助操作,提升开发效率。
命令
作用
示例
mvn help:effective-pom
查看最终生效 POM(含继承、默认配置、profile 激活后的配置)
mvn help:effective-pom(排查 POM 配置问题,如依赖继承、profile 生效情况)
mvn help:effective-settings
查看最终生效的 settings.xml 配置(含全局配置、镜像、仓库等)
mvn help:effective-settings(排查镜像、仓库配置问题,如依赖下载失败)
mvn help:describe
查看插件/目标详情,了解插件参数、作用
mvn help:describe -Dplugin=dependency -Ddetail(查看 dependency 插件所有目标和参数)
mvn archetype:generate
从模板快速创建 Maven 项目,避免手动配置项目结构
mvn archetype:generate -DgroupId=com.demo -DartifactId=demo-app -DarchetypeArtifactId=maven-archetype-quickstart(创建普通 Java 项目)
mvn versions:set
批量修改项目版本(含父项目、子模块),避免手动修改
mvn versions:set -DnewVersion=1.0.1(修改后用 versions:commit 确认,versions:revert 回滚)
mvn scm:commit/scm:tag
代码提交、打标签(关联版本控制工具,如 Git)
提交:mvn scm:commit -Dmessage="fix bug";打标签:mvn scm:tag -Dtag=v1.0(发布版本时打标签,方便回溯)
六、常用参数速记
以下参数可搭配任意 Maven 命令使用,用于控制构建行为、加速构建、排查问题,是日常开发的“小技巧”。
参数
作用
使用示例
-U
强制更新快照依赖(snapshot 版本),解决快照依赖不更新问题
mvn clean install -U
-o
离线模式(不联网),仅使用本地仓库依赖,适合网络不佳时
mvn clean package -o
-X
输出调试日志(详细日志),排查构建失败、依赖冲突等问题
mvn compile -X(日志较多,可输出到文件查看)
-P[环境名]
激活指定环境的 profile 配置(如 dev、test、prod),切换环境配置
mvn clean package -Pdev(激活 dev 环境,使用 dev 环境的配置)
-T 4
并发构建(4 线程),加速多模块项目构建,节省时间
mvn -T 4C clean install(4C 表示按 CPU 核心数4倍配置线程)
-Dfile.encoding=UTF-8
指定编码格式,避免中文乱码(如编译、打包时中文注释乱码)
mvn compile -Dfile.encoding=UTF-8
-s
指定自定义 settings.xml 文件路径,替代默认配置,适配多环境配置需求
mvn clean install -s D:\maven\conf\settings-dev.xml(指定开发环境配置文件)
七、高频万能命令
整理了7个日常开发最高频的命令组合,无需记忆,直接复制执行,覆盖构建、依赖排查、打包等核心场景:
# 1. 日常开发构建(跳过测试,加速)
mvn clean install -DskipTests
# 2. 依赖冲突排查(快速查看依赖树,定位冲突依赖)
mvn dependency:tree
# 3. 清理本地依赖(只删不下载,最常用)
mvn dependency:purge-local-repository -DreResolve=false
# 4. 精确清理指定依赖 + 重新构建(精准解决单个依赖问题)
mvn dependency:purge-local-repository -DmanualInclude="com.alibaba:fastjson" -DreResolve=false clean install
# 5. 生成可执行 Uber JAR(含所有依赖,可直接运行)
mvn clean package shade:shade -DskipTests
# 6. 强制更新快照依赖 + 构建(依赖快照版本不更新时)
mvn clean install -U -DskipTests
# 7. 只打包不安装(供部署,无需安装到本地仓库)
mvn clean package -DskipTests
结尾总结
本文整理了 Maven 全场景常用命令,涵盖核心生命周期、依赖管理、测试打包、项目辅助等模块,重点补充了依赖清理的高级参数,所有命令均提供可直接复制的示例,适配 Java 后端高频开发场景。熟练掌握这些命令,能大幅提升开发效率,避免因命令不熟悉导致的构建问题。建议收藏本文,日常开发中快速检索使用,也可转发给团队同事,共同提升开发效率。
后续会持续更新 Maven 进阶用法(如 POM 配置优化、插件自定义、多模块项目管理等),关注不迷路~
(注:文档部分内容可能由 AI 生成)