Maven 学习手册
Maven 全流程学习手册
文档核心说明
本文档适用于 Java 开发入门者、需要快速搭建 Maven 开发环境的开发者,整合了 Maven 环境准备、下载安装、系统配置、核心配置、项目使用、IDE 集成的完整步骤,所有操作均为生产环境验证的稳定方案,新手可直接按步骤执行。
一、前置准备:JDK 环境
Maven 基于 Java 开发,必须先配置 JDK 环境,版本兼容规则如下:
| Maven 版本 | 最低 JDK 要求 | 推荐生产版本 |
|---|---|---|
| 3.9.x 稳定版 | JDK 8+ | JDK 8 / JDK 17 / JDK 21(LTS 版本) |
| 4.0.x 预览版 | JDK 17+ | 不推荐生产环境使用 |
验证 JDK 环境
打开终端 / 命令提示符,执行以下命令,均正常输出版本信息即为配置成功:
1 | # 验证Java运行环境 |
若命令报错,需先完成 JDK 安装与JAVA_HOME环境变量配置,再进行后续步骤。
二、Maven 下载与安装
1. 官方下载
生产环境推荐:最新稳定版 apache-maven-3.9.15
安装包选择规则:
系统 推荐安装包 说明 Windows apache-maven-3.9.15-bin.zip 二进制免安装版,解压即可用 macOS/Linux apache-maven-3.9.15-bin.tar.gz 二进制压缩包,解压即可用
❗ 避坑提醒:不要下载
src源码包,必须下载带bin的二进制包;解压路径严禁包含中文、空格、特殊字符,推荐路径:
Windows:
D:\dev\apache-maven-3.9.15macOS/Linux:
/usr/local/apache-maven-3.9.15或\~/opt/apache-maven-3.9.15
2. 解压安装
Windows:右键 zip 包,选择「解压到当前文件夹」,放到上述推荐路径即可
macOS/Linux:终端执行解压命令
1
2
3
4# 对应下载的tar.gz包路径
tar -zxvf apache-maven-3.9.15-bin.tar.gz
# 移动到目标目录(示例)
sudo mv apache-maven-3.9.15 /usr/local/
三、系统环境变量配置
环境变量的作用是让系统在任意目录都能识别mvn命令,统一管理 Maven 路径,方便版本切换。
核心环境变量说明
| 变量名 | 作用 | 是否必须 | 示例 |
|---|---|---|---|
MAVEN_HOME |
Maven 安装根目录(bin 的上一级) | ✅ 推荐 | D:\dev\apache-maven-3.9.15 |
PATH |
系统查找可执行文件的路径 | ✅ 必须 | %MAVEN_HOME%\bin(Win)/ $MAVEN_HOME/bin(macOS/Linux) |
MAVEN_OPTS |
JVM 启动参数(内存、编码等) | ❌ 可选 | -Xms512m -Xmx1g -Dfile.encoding=UTF-8 |
1. Windows 系统配置
右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
在系统变量区域,点击「新建」:
变量名:
MAVEN_HOME变量值:Maven 解压根目录(如
D:\dev\apache-maven-3.9.15)
找到系统变量中的
Path,双击编辑,点击「新建」,添加:Text 1
%MAVEN_HOME%\bin
可选:新建系统变量
MAVEN_OPTS,值为-Xms512m -Xmx1g -Dfile.encoding=UTF-8依次点击所有窗口的「确定」,配置完成。
2. macOS/Linux 系统配置
打开终端,先确认当前使用的 shell:
1
2
3echo $SHELL
# 输出/bin/bash → 编辑~/.bash_profile
# 输出/bin/zsh → 编辑~/.zshrc(macOS 10.15+默认)执行编辑命令(以 zsh 为例):
1
vim ~/.zshrc
按
i进入编辑模式,在文件末尾添加以下内容:1
2
3
4
5# Maven 环境变量
export MAVEN_HOME=/usr/local/apache-maven-3.9.15
export PATH=$MAVEN_HOME/bin:$PATH
# 可选:JVM参数
export MAVEN_OPTS="-Xms512m -Xmx1g -Dfile.encoding=UTF-8"按
Esc,输入:wq保存退出,执行以下命令让配置立即生效:1
2source ~/.zshrc
# bash用户执行 source ~/.bash_profile
3. 安装验证
必须打开新的终端 / CMD 窗口(旧窗口无法读取新配置的环境变量),执行命令:
1 | mvn -v |
成功输出包含 Maven 版本、Java 版本、系统信息的内容,即为安装配置成功。
四、Maven 核心配置(settings.xml)
settings.xml是 Maven 的核心配置文件,用于控制本地仓库、镜像源、全局编译规则等,分为 2 个级别:
全局配置:Maven 安装目录下的
conf/settings.xml,对所有用户生效用户级配置:用户目录下的
.m2/settings.xml,仅对当前用户生效,优先级更高,重装 Maven 不会丢失,推荐使用。
若用户目录下没有
.m2文件夹,手动创建即可;没有settings.xml,直接新建该文件,复制下方完整配置模板。
完整配置模板(开箱即用)
1 |
|
五、Maven 核心概念与基础使用
1. 标准项目结构
Maven 遵循约定大于配置原则,所有项目必须遵循标准目录结构,无需额外配置即可自动识别:
1 | my-maven-project # 项目根目录 |
2. 核心文件:pom.xml 详解
pom.xml(Project Object Model,项目对象模型)是 Maven 项目的灵魂,定义了项目的坐标、依赖、构建规则等,最小可运行模板如下:
1 |
|
依赖 scope 作用范围
| scope 值 | 作用 | 生效范围 | 示例 |
|---|---|---|---|
| compile | 默认值 | 编译、测试、运行、打包全阶段生效 | spring-core |
| test | 仅测试阶段生效 | 仅测试代码编译、执行时生效 | junit |
| provided | 编译测试生效,运行时不生效,不会打包 | 编译、测试 | servlet-api(Tomcat 容器提供) |
| runtime | 运行时生效,编译时不生效 | 测试、运行 | mysql-connector-java |
3. 三大生命周期与核心命令
Maven 定义了三套生命周期,执行后面的阶段,会自动执行前面的所有前置阶段:
| 生命周期 | 核心作用 |
|---|---|
| clean | 清理项目,删除 target 目录 |
| default(build) | 核心构建,完成编译、测试、打包、部署全流程 |
| site | 生成项目文档,日常开发极少使用 |
高频常用命令
| 命令 | 核心作用 |
|---|---|
mvn clean |
清理项目,删除 target 目录 |
mvn compile |
编译主源码,检查编译错误 |
mvn test |
执行所有测试用例 |
mvn package |
编译测试后,打包成 jar/war 包 |
mvn install |
打包后,安装到本地 Maven 仓库 |
mvn dependency:tree |
打印依赖树,排查 Jar 包冲突 |
mvn clean package -DskipTests |
打包时跳过测试,快速生成产物 |
六、VSCode 中集成与使用 Maven
1. 前置准备
确保系统级 JDK、Maven 环境已配置完成,终端执行mvn -v可正常输出版本信息。
2. 安装必备插件
打开 VSCode 扩展商店(快捷键
Ctrl+Shift+X)搜索安装 Extension Pack for Java(微软官方 Java 全家桶),该插件包已内置
Maven for Java核心插件,同时包含语言支持、调试器等所有 Java 开发必备工具安装完成后重启 VSCode
3. VSCode Maven 核心配置
默认情况下 VSCode 会自动读取系统环境变量和用户级settings.xml,识别失败可手动配置:
打开 VSCode 设置(快捷键
Ctrl+,),点击右上角打开settings.json添加以下配置,根据自己的路径修改:
1 | { |
4. 创建 / 导入 Maven 项目
创建新项目
打开命令面板(
Ctrl+Shift+P),选择Maven: Create Maven Project选择项目模板,最常用
maven-archetype-quickstart(标准 Java 项目)填写 GAV 坐标,选择保存路径,等待自动生成项目结构
导入已有项目
点击「文件」→「打开文件夹」,选择包含
pom.xml的项目根目录VSCode 会自动识别 Maven 项目,加载依赖,识别失败可右键
pom.xml选择「Update Project Configuration」
5. 日常常用操作
执行 Maven 命令:左侧打开 Maven 侧边栏,展开项目→Lifecycle,双击对应命令即可执行
自定义命令:命令面板选择
Maven: Execute Commands,输入自定义命令(如dependency:tree)运行调试:右键 Java 主类,选择
Run Java/Debug Java即可运行调试多模块项目:打开父项目根目录,VSCode 会自动识别所有子模块,可单独对模块执行命令
七、常见问题与解决方案
1. mvn命令提示 “不是内部或外部命令”
必须打开新终端 / CMD 窗口,旧窗口无法读取新环境变量
检查
MAVEN_HOME路径是否为 Maven 根目录,Path 中是否添加了%MAVEN_HOME%\bin检查路径是否包含中文、空格,修改为纯英文路径
2. 报错JAVA_HOME not set
先配置 JDK 的
JAVA_HOME环境变量,Maven 依赖 Java 环境可在 VSCode 的
maven.terminal.customEnv中单独配置 JAVA_HOME
3. 依赖下载慢 / 下载失败
检查
settings.xml是否正确配置了阿里云镜像删除本地仓库中对应依赖的
.lastUpdated文件,重新刷新依赖关闭 VPN,检查网络是否正常
4. Maven 项目识别失败,pom.xml 图标不对
检查是否安装了 Java 全家桶插件,重启 VSCode
确保打开了包含 pom.xml 的项目根目录
执行
Java: Clean Java Language Server Workspace清理缓存
5. 中文乱码 / 编译报错
在
settings.xml中配置 UTF-8 编码在
MAVEN_OPTS中添加-Dfile.encoding=UTF-8VSCode 文件编码设置为 UTF-8
6. Jar 包冲突(ClassNotFoundException/NoSuchMethodError)
执行
mvn dependency:tree查看依赖树,定位冲突版本在冲突依赖中使用
<exclusions>排除不需要的版本
7. Lombok 注解不生效
- 安装 Lombok 插件,开启注解处理:
"java.annotations.processor.enabled": true
8. 大项目打包内存溢出
- 调大
MAVEN_OPTS的内存配置,比如改为-Xms1g -Xmx2g
核心知识点速览
Maven 是 Java 项目的依赖管理与构建工具,核心遵循约定大于配置原则
系统环境变量核心是配置
MAVEN_HOME+PATH,实现全局mvn命令调用settings.xml推荐使用用户级配置,可自定义本地仓库、阿里云镜像加速下载Maven 生命周期执行后序阶段会自动执行所有前置阶段,常用组合命令
mvn clean packagepom.xml 通过GAV 坐标唯一标识项目与依赖,scope 控制依赖的生效范围
VSCode 集成 Maven 只需安装官方 Java 全家桶插件,可自动读取系统 Maven 配置
排查 Jar 包冲突可通过
mvn dependency:tree查看完整依赖传递关系所有配置路径严禁包含中文、空格,避免出现识别错误
国内开发必须配置阿里云镜像,解决中央仓库下载慢的问题
多版本 Maven 切换只需修改
MAVEN_HOME路径,无需修改其他配置