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 面板中可视化操作,避免手动输入。
  • 若命令执行缓慢,可配置国内镜像仓库(如阿里云)加速依赖下载。
相关推荐
qq_5470261798 分钟前
Java 中的 Caffeine 缓存详解
java·开发语言·缓存
沐雪轻挽萤20 分钟前
15. C++17新特性-std::string_view
java·开发语言·c++
devilnumber35 分钟前
java的NIO框架Netty、Mina、Grizzly 和 Jetty 四种对比
java·nio·java面试·jetty
努力进修39 分钟前
【java-数据结构】Java优先级队列揭秘:堆的力量让数据处理飞起来
java·开发语言·数据结构
亚历克斯神39 分钟前
Java 代码质量与静态分析:2026 实战指南
java·spring·微服务
@hhr39 分钟前
使用java对接火山方舟doubao-seedance-1.5-pro 模型进行视频生成
java·python·音视频
廋到被风吹走40 分钟前
【LangChain4j】Java 生态中最灵活、功能最强大的纯 Java 大模型应用开发框架(支持声明式@AiService与复杂RAG/Agent)
java·开发语言·python
艾克杏41 分钟前
初学Java之范型
java·开发语言
heartbeat..42 分钟前
java中常用的几种加密方式
java·开发语言
QQ227923910242 分钟前
Java springboot基于微信小程序的智慧旅游导游系统景点门票酒店预订(源码+文档+运行视频+讲解视频)
java·spring boot·微信小程序·maven·vuejs