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 配置生成对应的包(如 jarwarpom 等),输出到 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 阶段(包含 compiletest 等前置阶段)。

常用阶段(按执行顺序):
validatecompiletestpackageverifyinstalldeploy

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 面板中可视化操作,避免手动输入。
  • 若命令执行缓慢,可配置国内镜像仓库(如阿里云)加速依赖下载。
相关推荐
葡萄成熟时 !1 天前
JAVA 常用API学习笔记
java·笔记·学习
Rain的Java大神之路1 天前
介绍一下分布式事务
java·分布式·后端·spring·spring cloud·架构·springcloud
吴声子夜歌1 天前
Java面试题——基础(一)
java·开发语言
南城以南溫暖如初1471 天前
外卖CPS实战指南:从技术选型到运营落地全流程解析
java·spring boot·mysql·架构·vue
傻啦嘿哟1 天前
英雄联盟皮肤爬虫:爬取全皮肤价格与特效,做比价工具
java·c++·爬虫
码匠许师傅1 天前
【C++ 面试真题】24. 聊聊 C++ 的时间日期处理
java·c++·面试
mqiqe1 天前
AgentScope Java 2.0 Agent 状态存储(AgentStateStore)深度解析:构建可恢复、可扩展的智能体运行时
java·运维·网络
zhifou1234561 天前
java 17升级安装
java·开发语言
用户3721574261351 天前
如何使用 Java 将 Markdown 转换为 PDF(含自定义设置)
java
用户3721574261351 天前
如何使用 Java 在 Word 文档中添加和删除水印:分步指南
java