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 面板中可视化操作,避免手动输入。
  • 若命令执行缓慢,可配置国内镜像仓库(如阿里云)加速依赖下载。
相关推荐
xie_pin_an1 小时前
MyBatis-Plus 实战:MPJLambdaWrapper 多表联查用法全解析
java·spring boot·spring·mybatis
ᐇ9591 小时前
Java LinkedList集合全面解析:双向链表的艺术与实战
java·开发语言·链表
luyun0202022 小时前
Windows 11操作更丝滑,绝了
java·运维·figma
码银2 小时前
【数据结构】顺序表
java·开发语言·数据结构
Boop_wu2 小时前
[Java EE] 计算机基础
java·服务器·前端
橘子海全栈攻城狮2 小时前
【源码+文档+调试讲解】基于Spring Boot的考务管理系统设计与实现 085
java·spring boot·后端·spring
神仙别闹2 小时前
基于QT(C++) 实现哈夫曼压缩(多线程)
java·c++·qt
百锦再2 小时前
第12章 测试编写
android·java·开发语言·python·rust·go·erlang