【Maven 超详细入门教程】零基础也能轻松学会!从安装到实战一篇搞定
🔥 前言:为什么你一定要学 Maven?
还记得第一次写 Java 项目时的痛苦吗?
想用 JSON 解析?百度搜半天,手动下载fastjson.jar,拖进 lib 目录。
想连数据库?再下载 mysql-connector.jar,继续手动拖。
结果一运行——报错了。
缺个依赖,版本不对,jar 包冲突……
手动管 jar 包的五大噩梦:
-
❌ 去哪下?官网都找不到
-
❌ 版本怎么选?下错了直接报错
-
❌ A 依赖 B,B 依赖 C,漏一个全崩——jar 包地狱
-
❌ 打包发布?手动操作能让你怀疑人生
-
❌ 团队协作?你用 1.0 他用 2.0,合代码直接爆炸 💥
Maven 就是来终结这些痛苦的。
一行配置自动下载依赖。
一条命令完成打包。
团队版本统一管理。
这篇文章用最通俗的大白话,手把手带你从零掌握 Maven。
建议先收藏,跟着一步步操作。 🚀
一、Maven 简介:一句话说清楚
1.1 Maven 是什么?
Maven 就是 Java 项目的“全能管家”。
它帮你做三件事:
|
能力 |
大白话 |
|---|---|
|
依赖管理 |
告诉它要什么 jar 包,自动下载,相关依赖也一起搞定 |
|
项目构建 |
编译、测试、打包、部署,一条命令搞定 |
|
统一结构 |
所有项目目录长一样,换公司也能秒上手 |
1.2 对比感受一下
【不用 Maven】
你:“我要用 Spring” → 百度搜 → 找官网 → 下 jar →
拖进项目 → 发现还缺 5 个依赖 → 再搜 → 再下 → 版本冲突 → 崩溃……
【用 Maven】
你:写 3 行配置 Maven:Spring 和所有依赖都下好了,版本也配好了 ✅
1.3 背景信息
-
Apache 基金会出品,开源免费
-
Java 生态最主流的构建工具,没有之一
-
几乎所有企业级 Java 项目都在用
二、核心概念(大白话版,别跳过)
2.1 POM(pom.xml)
pom.xml = 项目的“身份证 + 购物清单”。
-
身份证:项目叫什么、版本多少
-
购物清单:需要哪些 jar 包
每个 Maven 项目有且仅有一个pom.xml。
一切围绕它展开。
2.2 坐标(GAV)
每个 jar 包都有唯一身份标识,由三部分组成:
|
简称 |
含义 |
举例 |
|---|---|---|
|
G - groupId |
谁开发的(域名反写) |
|
|
A - artifactId |
叫什么名 |
|
|
V - version |
哪个版本 |
|
写在 pom.xml 里长这样:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
💡 不知道坐标怎么写? 去 mvnrepository.com 搜索,直接复制。这是 Maven 依赖的“淘宝”,必须收藏。
2.3 仓库(三级快递站)
jar 包下载下来存哪?——仓库。
项目需要一个 jar 包
↓
① 先找【本地仓库】(你电脑上的一个文件夹)
↓
没有
② 再找【私服】(公司内部的,可选)
↓
没有
③ 最后找【中央仓库】(Maven 官方的,在国外)
↓
找到了
下载到本地仓库缓存,下次直接用
三个仓库:
-
本地仓库:你电脑上的文件夹,默认在
C:\Users\用户名\.m2\repository -
中央仓库:官方大仓库,啥都有,但在国外,下载慢
-
私服:公司自建的,入门先不管
⚠️ 避坑: 默认本地仓库在 C 盘,日积月累好几个 GB。后面教你改到 D 盘。
2.4 依赖传递
最强功能之一。
你只声明了依赖 A
A 内部依赖了 B 和 C
B 又依赖了 D
Maven 自动把 A、B、C、D 全下载好!
你只写一行就够了。
这就是 Maven 解决“jar 包地狱”的核心。
2.5 生命周期
Maven 把构建过程标准化成流水线工序:
clean → compile → test → package → install → deploy
|
阶段 |
做了啥 |
|---|---|
|
|
删除上次的编译文件 |
|
|
.java → .class |
|
|
跑单元测试 |
|
|
打成 jar/war 包 |
|
|
装到本地仓库 |
|
|
发布到私服(入门先不管) |
关键特性:执行后面的,前面的会自动执行。
比如执行 package,会自动先 compile → test → package。
💡 新手记住 clean、compile、package、install 就够了。
三、版本选择:Maven & JDK 兼容对照表
⚠️ 新手第一个大坑:Maven 和 JDK 版本不兼容,装完直接报错。
先看这张表再下载!
3.1 兼容性对照表
|
Maven 版本 |
最低 JDK 版本 |
最高支持 JDK |
状态 |
|---|---|---|---|
|
3.6.3 |
JDK 7 |
JDK 15 |
老项目常见 |
|
3.8.8 |
JDK 7 |
JDK 19 |
过渡版本 |
|
3.9.6 |
JDK 8 |
JDK 21 |
⭐ 当前稳定版 |
|
3.9.9 |
JDK 8 |
JDK 23 |
⭐ 最新稳定版 |
|
4.0.x |
JDK 17 |
— |
🚧 开发中,别碰 |
3.2 新手推荐方案(二选一)
|
方案 |
JDK |
Maven |
适合谁 |
|---|---|---|---|
|
稳妥之选 |
JDK 8 |
Maven 3.9.9 |
大部分新手、企业主流 |
|
新版体验 |
JDK 17 |
Maven 3.9.9 |
学 Spring Boot 3.x |
3.3 常见翻车场景
❌ JDK 7 + Maven 3.9.x → 启动直接报错!
❌ JDK 8 + Maven 4.0.x → 启动直接报错!
❌ JDK 20 + Maven 3.6.3 → 编译可能异常!
💡 java -version先跑 确认 JDK 版本,再选 Maven。
四、Maven 安装(全平台:Windows + Mac + Linux)
4.1 前提:确认 JDK 已安装
按 Win + R → 输入 cmd → 回车,执行:
java -version
看到版本号 → JDK 已就绪。
提示“不是内部命令” → 先装 JDK。
4.2 下载 Maven
官网:maven.apache.org/download.cgi
下载 Binary zip 版本。
💡 下载慢?用清华镜像:
https://mirrors.tuna.tsinghua.edu.cn/apache/maven/
4.3 Windows 安装(详细步骤)
-
解压到无中文、无空格路径,例如:
D:\Development\apache-maven-3.9.9 -
配置环境变量
-
新建系统变量
MAVEN_HOME,值为解压路径 -
Path 变量追加
%MAVEN_HOME%\bin
-
-
重新打开 cmd,执行验证命令:
mvn -version
出现版本信息,说明安装成功。
4.4 Mac / Linux 极简安装
# Mac(Homebrew)
brew install maven
# Linux(Ubuntu/Debian)
sudo apt update sudo apt install maven
# 验证安装
mvn -version
一行命令完成安装,无需手动配置环境变量。
五、基础配置(装完必做,不配会踩坑)
配置文件路径:Maven安装目录/conf/settings.xml
新手直接复制下方完整纯净配置,全覆盖本地仓库、阿里云镜像、JDK版本,零出错。
5.1 完整settings.xml(一键复制)
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 本地仓库路径,Windows用户直接用,Mac/Linux替换下方路径 -->
<localRepository>D:\Development\maven-repository</localRepository>
<!-- 阿里云镜像,加速依赖下载 -->
<mirrors>
<mirror>
<id>aliyunmaven</id>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<!-- 全局JDK编译版本,用17则替换数值为17 -->
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</profile>
</profiles>
</settings>
5.2 Mac/Linux用户修改说明
将配置中本地仓库路径替换为自己的路径,示例:
<localRepository>/Users/用户名/maven-repository</localRepository>
六、IDEA 集成 Maven(新版+旧版通用)
6.1 全局配置(一次配置,终身生效)
-
打开 IDEA 欢迎页,不进入项目
-
点击 Customize → All Settings
-
搜索 Maven,修改三项配置
-
Maven home path:选中自己安装的Maven目录,不使用IDEA自带版本
-
User settings file:勾选Override,指向conf/settings.xml
-
Local repository:勾选Override,选中自定义仓库路径
-
-
保存配置即可
⚠️ 避坑: File-Settings 只对当前项目生效,全局配置必须在欢迎页操作。
6.2 创建Maven项目
新版IDEA(2023及以上)
-
欢迎页 → New Project
-
Language选Java,Build system 选择Maven
-
填写GroupId、ArtifactId,完成创建
旧版IDEA
-
New Project → 左侧选Maven
-
不勾选Create from archetype
-
填写信息,下一步完成
6.3 标准项目结构
maven-demo/
├── src/
│ ├── main/
│ │ ├── java/ # 业务源码
│ │ └── resources/ # 配置文件
│ └── test/
│ ├── java/ # 测试代码
│ └── resources/ # 测试配置
├── pom.xml # Maven核心配置
└── target/ # 编译打包产物
6.4 IDEA Maven工具栏
右侧打开Maven面板,Lifecycle目录下,双击即可执行对应命令,无需手动输入。
七、常用命令(必记速查)
|
命令 |
作用 |
使用场景 |
|---|---|---|
|
|
清理编译产物 |
项目报错、重新构建 |
|
|
编译源码 |
检查代码语法 |
|
|
打包项目 |
生成可运行jar包 |
|
|
安装到本地仓库 |
多项目引用 |
|
|
清理后打包 |
⭐ 最常用 |
|
|
跳过测试打包 |
赶进度、测试未写完 |
|
|
查看依赖树 |
排查版本冲突 |
八、实战 Demo:从零到运行
8.1 创建项目
按照前文步骤,创建Maven项目,GroupId填com.example,ArtifactId填 maven-demo。
8.2 编写pom.xml
在dependencies标签内添加依赖:
<dependencies>
<!-- JSON解析工具 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
保存后刷新Maven,自动下载依赖。
8.3 编写测试代码
package com.example;
import com.alibaba.fastjson.JSON;
import java.util.HashMap;
import java.util.Map;
public class App {
public static void main(String[] args) {
Map<String, Object> user = new HashMap<>();
user.put("name", "张三");
user.put("age", 25);
user.put("city", "北京");
// 转JSON字符串
String json = JSON.toJSONString(user);
System.out.println("JSON:" + json);
// 解析JSON
Map parsed = JSON.parseObject(json, Map.class);
System.out.println("姓名:" + parsed.get("name"));
}
}
8.4 运行与打包
-
右键运行main方法,控制台正常打印数据,说明依赖生效
-
执行
mvn clean package,target目录生成jar包,打包完成
九、依赖scope(作用域)
|
scope值 |
编译 |
测试 |
运行 |
打包 |
常用场景 |
|---|---|---|---|---|---|
|
compile(默认) |
✅ |
✅ |
✅ |
✅ |
业务代码依赖 |
|
test |
❌ |
✅ |
❌ |
❌ |
JUnit测试框架 |
|
provided |
✅ |
✅ |
❌ |
❌ |
Servlet-api |
|
runtime |
❌ |
✅ |
✅ |
✅ |
数据库驱动 |
十、依赖冲突排查与解决
10.1 冲突原因
多个依赖引入了同一个jar包的不同版本,导致方法缺失、类找不到,报错 NoSuchMethodError。
10.2 排查方式
mvn dependency:tree
执行命令查看依赖树,找出冲突版本。
10.3 解决方法
方法一:排除冲突依赖
<dependency>
<groupId>com.aaa</groupId>
<artifactId>module-a</artifactId>
<version>1.0</version>
<exclusions>
<!-- 排除冲突版本 -->
<exclusion>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</exclusion>
</exclusions>
</dependency>
方法二:手动指定版本
在pom.xml直接声明需要的版本,优先级最高。
十一、新手常见问题速查
❌ 依赖下载失败、标红
-
确认已配置阿里云镜像
-
删除本地仓库中
.lastUpdated后缀文件 -
执行
mvn clean install -U强制更新
❌ mvn命令不是内部命令
-
检查MAVEN_HOME环境变量路径正确
-
Path已追加bin目录
-
重新打开cmd窗口
❌ 编译提示源版本过时
在pom.xmlproperties标签内指定JDK版本:
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
❌ IDEA配置不生效
-
全局配置需在欢迎页设置
-
勾选Override,核对路径无误
-
重启IDEA
十二、全文总结
Maven的核心设计理念:约定优于配置。
它统一了项目结构、简化了依赖管理、自动化了构建流程,彻底告别手动导包的繁琐。
本文内容覆盖零基础入门全流程,掌握这些足以应对日常开发和企业项目需求,进阶玩法(多模块、profile、插件)可在熟练后深入学习。
🎁 文末彩蛋:命令速查表
# 基础命令
mvn clean
mvn compile
mvn test
mvn package
mvn install
# 高频组合命令
mvn clean package
mvn clean install
mvn clean package -DskipTests
# 排查工具
mvn dependency:tree
mvn help:effective-pom
# 强制更新
mvn clean install -U
🔥 如果这篇文章对你有帮助,欢迎点赞、收藏、关注,持续更新Java干货教程!
有疑问可在评论区留言,看到都会回复。
原创不易,转载请注明出处。
更多推荐




所有评论(0)