maven常用的命令

目录

[1. 基础构建与清理](#1. 基础构建与清理)

[2. 依赖管理](#2. 依赖管理)

[3. 生命周期与阶段](#3. 生命周期与阶段)

[4. 测试相关](#4. 测试相关)

[5. 项目信息与辅助](#5. 项目信息与辅助)

[6. 其他实用命令](#6. 其他实用命令)

小贴士

以下是 Maven 常用命令的整理,涵盖项目构建、依赖管理、测试、打包等场景,适用于日常开发和部署:

1. 基础构建与清理

  • mvn clean
    清理项目,删除 target 目录(编译、打包生成的文件都会存放在这里)。
  • mvn compile
    编译项目主代码(src/main/java),编译结果存放在 target/classes。
  • mvn test-compile
    编译测试代码(src/test/java),结果存放在 target/test-classes。
  • mvn test
    运行测试用例(需先编译主代码和测试代码),默认执行 src/test/java 下的单元测试,结果会在 target/surefire-reports 生成报告。
  • mvn package
    打包项目(在 test 之后执行),根据 pom.xml 中的 packaging 配置生成对应的包(如 jar、war、pom 等),输出到 target 目录。
  • mvn install
    将项目打包后安装到 本地 Maven 仓库 (默认路径 ~/.m2/repository),供本地其他项目依赖使用。
  • mvn deploy
    将项目打包后部署到 远程仓库 (需在 pom.xml 中配置远程仓库地址),供团队其他成员或部署环境使用。

2. 依赖管理

  • mvn dependency:tree
    查看项目依赖树,显示所有依赖的层级关系(可用于排查依赖冲突)。
  • mvn dependency:analyze
    分析依赖:检测未使用的依赖(Unused declared dependencies)和未声明但被使用的依赖(Used undeclared dependencies)。
  • mvn dependency:purge-local-repository
    清理本地仓库中项目相关的依赖(强制重新下载,解决本地缓存损坏问题)。
  • mvn -U clean install
    强制更新依赖(-U 表示强制刷新远程仓库的快照版本和发布版本,忽略本地缓存)。

3. 生命周期与阶段

Maven 的生命周期分为 clean(清理)、default(默认)、site(站点) ,每个生命周期包含多个阶段,按顺序执行。例如:
mvn clean package 会先执行 clean 生命周期,再执行 default 生命周期到 package 阶段(包含 compile、test 等前置阶段)。

常用阶段(按执行顺序):
validate → compile → test → package → verify → install → deploy

4. 测试相关

  • mvn test -Dtest=TestClassName
    只运行指定的测试类(例如 mvn test -Dtest=UserServiceTest)。
  • mvn test -Dtest=TestClassName#methodName
    只运行测试类中的某个方法(例如 mvn test -Dtest=UserServiceTest#testLogin)。
  • mvn test -DskipTests
    编译测试代码,但不运行测试用例(适用于快速打包,跳过测试耗时)。
  • mvn test -Dmaven.test.skip=true
    既不编译测试代码,也不运行测试用例(比 -DskipTests 更彻底)。

5. 项目信息与辅助

  • mvn help:effective-pom
    查看项目的"有效 POM"(合并了父 POM、默认配置后的最终 POM),用于排查配置继承问题。
  • mvn help:system
    打印系统属性和环境变量(可用于检查 Maven 环境配置)。
  • mvn archetype:generate
    通过 archetype(骨架)快速创建新项目(如 maven-archetype-quickstart 生成基础 Java 项目,maven-archetype-webapp 生成 Web 项目)。
  • mvn site
    生成项目站点文档(需配置 site 插件),包含测试报告、依赖信息等,输出到 target/site。

6. 其他实用命令

  • mvn clean package -Dmaven.test.skip=true
    清理后打包,且跳过测试(常用于生产环境打包)。
  • mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version
    查看当前项目的版本号(替换 project.version 可查看其他属性,如 project.groupId)。
  • mvn versions:set -DnewVersion=1.0.1
    批量修改项目版本号(需 versions-maven-plugin 插件,修改后可执行 mvn versions:commit 确认,或 versions-maven-plugin:revert 回滚)。

小贴士

  • 命令可以组合使用,例如 mvn clean install -U -DskipTests(强制更新依赖 + 清理 + 安装 + 跳过测试)。
  • 复杂命令可在 IDE(如 IDEA、Eclipse)的 Maven 面板中可视化操作,避免手动输入。
  • 若命令执行缓慢,可配置国内镜像仓库(如阿里云)加速依赖下载。
相关推荐
wangchunyu1146 小时前
JAVA CompletableFuture异步编程实战
java·开发语言·python
paopaokaka_luck7 小时前
流浪动物救助与收养系统(DeepSeek AI对话、 ECharts多维分析、救助流程衔接、领养与回访衔接、 捐赠确认与公示、志愿者协作)
java·前端·javascript·人工智能·mysql·echarts·推荐算法
Thomas.Sir7 小时前
第9课:SpringBoot4.x Web开发基础:WebMvc自动配置、静态资源、请求参数接收
java·spring boot
程序 代码狂人7 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
2501_944521598 小时前
Deepmerge 跨端三方库仓颉适配全流程
java·python·eclipse·github
南归北隐9 小时前
Spring AI Alibaba Graph框架实现MCP数据库查询实战
java·后端·spring ai·mcp·spring ai mcp
古法老登瞎折腾10 小时前
大数据智能运维实战(九):让 AI 查日志——找到异常,也保留上下文
java·大数据·运维·人工智能·spring ai·mcp
ai大模型-探索者10 小时前
Function Call与MCP(区别、联系与实战)
java·服务器·网络
略略略咯咯10 小时前
啊啊啊啊啊
java·服务器·数据库
SL_staff10 小时前
运维救火实战:钉钉API变更致薪资计算中断,如何用可视化逻辑引擎5分钟热修复
java·开源·全栈