💡 一则也许对你有用的小广告 🏆

欢迎飞飞程序员   ,你将获得:专属的实战项目(已更新的所有会员标识的项目都能学习) / 1v1 提问 / Java 学习路线 / PHP 学习路线 / 学习打卡 / 社群讨论

  • 正在进行中的项目:《FFBlog知识付费博客项目》 正在持续更新中,基于 Spring Boot 3.x + JDK 21...,点击查看 ;
  • 《从零开发:FFBlog知识付费博客项目(全栈开发)》 演示链接: https://ffblog.ffcxy.com/  ;

截止目前, 飞飞  正在疯狂爆肝实战项目,后续还会上新更多项目,目标是将所学知识开发成项目并且分享给大家,如知识付费系统, Ai系统, CMS系统,在线商城系统,等等 ,欢迎点击围观

Maven (mvn) 是 Java 生态中最常用的构建工具之一,用于项目管理、依赖管理、构建、测试和部署。以下是 mvn 命令的详细用法,涵盖常用命令、参数、生命周期及实际示例。


1. Maven 核心概念

1.1 生命周期 (Lifecycle)

Maven 构建过程分为三个标准生命周期:

  • clean:清理项目(删除 target/ 目录)。
  • default(核心):编译、测试、打包、部署。
  • site:生成项目文档和报告。

每个生命周期包含多个阶段(phase),按顺序执行。

1.2 常用构建阶段

阶段 (Phase)

作用

validate

验证项目配置是否正确。

compile

编译主代码(src/main/javatarget/classes)。

test

运行单元测试(src/test/java)。

package

打包(生成 JAR/WAR 等文件到 target/)。

verify

运行集成测试。

install

将构建的包安装到本地仓库(~/.m2/repository)。

deploy

将包部署到远程仓库(如 Nexus、Artifactory)。


2. 常用 mvn 命令

2.1 基础构建命令

命令

作用

mvn clean

清理 target/ 目录。

mvn compile

仅编译主代码。

mvn test

编译 + 运行测试。

mvn package

编译 + 测试 + 打包(生成 JAR/WAR)。

mvn install

编译 + 测试 + 打包 + 安装到本地仓库。

mvn deploy

编译 + 测试 + 打包 + 安装 + 部署到远程仓库。

2.2 跳过测试

命令

区别

mvn package -DskipTests

跳过测试执行,但会编译测试代码

mvn package -Dmaven.test.skip=true

完全跳过测试(不编译也不执行)。

2.3 指定环境/配置文件

mvn clean install -Pprod  # 使用 `prod` 配置文件(定义在 pom.xml 的 <profiles>)

2.4 多模块构建

mvn clean install -pl module1,module2  # 仅构建指定模块
mvn clean install -pl module1 -am      # 构建 module1 及其依赖模块

2.5 强制更新依赖

mvn clean install -U  # 强制更新 SNAPSHOT 依赖

2.6 调试模式

mvn -X clean install  # 显示详细日志(Debug 模式)

3. 高级用法

3.1 生成项目文档

mvn site  # 生成项目站点(HTML 报告)
mvn javadoc:javadoc  # 生成 JavaDoc

3.2 依赖分析

mvn dependency:tree  # 查看依赖树
mvn dependency:analyze  # 分析未使用的依赖

3.3 运行特定 Main 类

mvn exec:java -Dexec.mainClass="com.example.Main"

3.4 构建 Docker 镜像

mvn clean package docker:build  # 需配合 `docker-maven-plugin`

3.5 构建不同版本

mvn versions:set -DnewVersion=1.1.0  # 修改项目版本

4. 常见问题

4.1 构建失败怎么办?

  • 查看日志mvn clean install -X(Debug 模式)。
  • 检查依赖冲突mvn dependency:tree
  • 清理缓存:删除 ~/.m2/repository 中的冲突依赖。

4.2 如何加速构建?

  • 使用 -T 1C 启用多线程构建(1 线程/CPU 核心):

    mvn clean install -T 1C
    
  • 避免重复构建:

    mvn install -o  # 离线模式(不检查远程仓库)
    

4.3 如何跳过 Checkstyle/PMD?

mvn install -Dcheckstyle.skip -Dpmd.skip

5. 总结

场景

命令

清理 + 编译

mvn clean compile

编译 + 测试

mvn test

打包(跳过测试)

mvn package -DskipTests

安装到本地仓库

mvn install

部署到远程仓库

mvn deploy

多模块构建

mvn install -pl module1 -am

强制更新依赖

mvn install -U

查看依赖树

mvn dependency:tree

掌握这些命令后,可以高效管理 Java 项目的构建、测试和部署流程! 🚀

上一篇 flatten-maven-plugin 这个插件的作用是什么?
下一篇 mvn clean compile -DskipTests用法详解

全部评论(0)

头像
😃 😁 😅 😂 😍 😜 😝 🤑 🥵 🥰 😙 😎 😵 😭 😱 😖 🥳 👽 🙈 🤡 😤 💣 💯 💢 ❤️ 👍 👏 👋 👌 🤏 🙏
还没有任何评论哟~