0%

maven常用命令

Maven 常用命令全解析:从基础到进阶操作

Maven 命令是项目构建和管理的核心工具,掌握常用命令能显著提升开发效率。本文将按功能分类梳理 Maven 命令,涵盖基础构建、依赖管理、项目创建、测试与发布等场景,并解释其底层原理和适用场景。

基础构建命令

这类命令对应 Maven 生命周期的核心阶段,用于完成项目的编译、测试、打包等基础操作。

命令 功能描述 底层原理
mvn -v 查看 Maven 版本及环境信息(如 Java 版本、安装路径) 输出 maven-homejava-home 等配置,验证 Maven 环境是否正确。
mvn clean 清理项目(删除 target 目录,即编译、打包生成的文件) 触发 Clean 生命周期的 pre-cleanclean 阶段,调用 maven-clean-plugin:clean 目标。
mvn compile 编译主程序源码(输出到 target/classes 触发 Default 生命周期的 compile 阶段,调用 maven-compiler-plugin:compile 目标。
mvn test-compile 编译测试源码(输出到 target/test-classes 触发 test-compile 阶段,调用 maven-compiler-plugin:testCompile 目标。
mvn test 执行单元测试(运行 src/test/java 中的测试用例) 触发 test 阶段,调用 maven-surefire-plugin:test 目标,默认生成测试报告到 target/surefire-reports
mvn package 打包项目(如 Jar、War,输出到 target 目录) 触发 package 阶段,根据项目类型(pom.xml<packaging>)调用对应插件(如 maven-jar-plugin:jar)。
mvn install 将包安装到本地仓库(供本地其他项目依赖) 触发 install 阶段,调用 maven-install-plugin:install 目标,将包复制到本地仓库(默认 ~/.m2/repository)。
mvn deploy 将包部署到远程仓库(供团队共享) 触发 deploy 阶段,调用 maven-deploy-plugin:deploy 目标,需在 pom.xml 中配置 <distributionManagement> 远程仓库地址。

常用组合命令

1
2
3
4
5
6
7
8
# 清理并打包(跳过测试,适合快速构建)
mvn clean package -DskipTests

# 清理、编译、测试并安装到本地仓库
mvn clean install

# 部署到远程仓库(通常用于发布正式版本)
mvn clean deploy -Pprod # -Pprod 激活生产环境 profile

测试相关命令

Maven 提供丰富的测试命令,支持跳过测试、生成测试报告等功能。

命令 功能描述 注意事项
mvn test -Dtest=TestClassName 执行指定测试类(如 TestClassName 支持通配符,如 mvn test -Dtest=*ServiceTest 执行所有以 ServiceTest 结尾的测试类。
mvn test -Dtest=TestClassName#methodName 执行测试类中的指定方法 仅支持 JUnit 4+ 和 TestNG,如 mvn test -Dtest=UserServiceTest#testLogin
mvn package -DskipTests 打包时跳过测试执行(但仍编译测试代码) 适用于需要测试类编译通过,但暂时不执行测试的场景。
mvn package -Dmaven.test.skip=true 完全跳过测试(不编译也不执行测试代码) -DskipTests 更彻底,适合快速打包(如前端依赖的后端 Jar 包)。
mvn cobertura:cobertura 生成测试覆盖率报告(需添加 cobertura 插件) 报告输出到 target/site/cobertura,包含类、方法的覆盖率统计。

依赖管理命令

依赖管理是 Maven 的核心功能,这类命令用于分析、查看项目依赖。

命令 功能描述 实用场景
mvn dependency:list 列出项目所有依赖(包括传递依赖) 快速查看项目依赖的完整列表,包含坐标和版本。
mvn dependency:tree 以树形结构展示依赖层级关系 排查依赖冲突(如同一 Jar 包的不同版本),清晰显示依赖传递路径。
mvn dependency:analyze 分析依赖使用情况 输出两类问题: 1. Used undeclared dependencies:项目中使用但未显式声明的依赖(依赖传递引入)。 2. Unused declared dependencies:显式声明但未使用的依赖(需谨慎删除,可能被间接使用)。
mvn dependency:copy-dependencies 将项目依赖复制到指定目录(默认 target/dependency 用于手动管理依赖(如部署时拷贝到 lib 目录),可通过插件配置自定义输出路径。
mvn install:install-file -Dfile=xxx.jar -DgroupId=com.example -DartifactId=demo -Dversion=1.0 -Dpackaging=jar 手动安装本地 Jar 包到本地仓库 处理无法从远程仓库下载的 Jar 包(如第三方非开源 SDK)。

项目创建与信息查询命令

用于创建项目、查看项目配置等。

命令 功能描述 示例
mvn archetype:generate -DgroupId=com.example -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0-SNAPSHOT 创建普通 Java 项目 -DarchetypeArtifactId 指定骨架,maven-archetype-webapp 用于创建 Web 项目。
mvn help:effective-pom 查看项目的有效 POM(合并父 POM 和 Super POM 后的完整配置) 排查配置继承问题(如依赖、插件配置的来源)。
mvn help:active-profiles 查看当前激活的 Profile 验证多环境配置是否生效(如开发 / 生产环境的 Profile 是否正确激活)。
mvn help:all-profiles 列出项目所有定义的 Profile 查看 pom.xmlsettings.xml 中配置的所有环境 Profile。
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-compiler-plugin -Ddetail 查看插件详情(包括目标、参数) 学习插件配置(如查看 maven-compiler-pluginsourcetarget 参数含义)。

站点与发布命令

用于生成项目文档和发布站点。

命令 功能描述 说明
mvn site 生成项目站点文档(如依赖报告、测试报告) 需配置 maven-site-plugin,输出到 target/site
mvn site-deploy 将站点部署到远程服务器(如 Nginx、GitHub Pages) 需在 pom.xml 中配置 <distributionManagement> 的站点部署地址。
mvn release:prepare 准备版本发布(自动升级版本号、打标签) 用于规范发布流程,需配置 SCM(源码管理)信息(如 Git 仓库地址)。
mvn release:perform 执行发布(从标签检出代码并部署到远程仓库) 通常在 release:prepare 之后执行,完成正式版本的发布。

命令使用技巧

  1. 参数优先级:命令行参数(如 -DskipTests)> pom.xml 配置 > settings.xml 配置。

  2. 调试模式:添加-X或—debug查看详细执行日志(如排查依赖冲突、插件错误):

    1
    mvn clean package -X  # 输出调试日志
  1. 多命令组合:按顺序执行多个命令,用空格分隔(如 mvn clean test package)。

  2. 激活 Profile:用 -P 参数指定激活的环境(如 mvn package -Ptest 激活测试环境)。

欢迎关注我的其它发布渠道

表情 | 预览
快来做第一个评论的人吧~
Powered By Valine
v1.3.10