maven常用的命令
目录
1. 基础构建与清理
2. 依赖管理
3. 生命周期与阶段
4. 测试相关
5. 项目信息与辅助
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 面板中可视化操作,避免手动输入。
- 若命令执行缓慢,可配置国内镜像仓库(如阿里云)加速依赖下载。
