1. Maven 的概念
1.1. 什么是 Maven
Maven 是一个基于 项目对象模型(POM) 的 Apache 开源项目管理工具。它不仅仅是一个构建工具,更是一个项目管理框架。
-
核心机制 :通过一个
pom.xml文件管理项目的整个生命周期(编译、测试、打包、部署)。 -
约定优于配置:Maven 规定了标准的项目目录结构,开发者只需遵循约定,无需繁琐的配置即可构建项目。
标准目录结构(代码示例):
text
my-maven-project/
├── src/
│ ├── main/
│ │ ├── java/ # 项目源码 (Java 文件)
│ │ └── resources/ # 资源文件 (配置文件、静态资源)
│ └── test/
│ ├── java/ # 单元测试源码
│ └── resources/ # 测试资源
├── target/ # 编译输出目录 (自动生成,无需手动维护)
└── pom.xml # Maven 的核心配置文件
1.2. 什么是依赖管理
依赖管理是 Maven 最核心的功能之一,它解决了项目中 JAR 包"从哪里来"、"去哪里找"、"版本冲突怎么办" 的问题。
-
坐标(GAV) :Maven 使用
groupId(组织ID)、artifactId(项目ID)、version(版本号)唯一定位一个 JAR 包。 -
传递性依赖:如果你引用了 A,而 A 又依赖了 B,Maven 会自动下载 B,无需手动导入。
依赖配置代码示例 (pom.xml):
XML
xml
<dependencies>
<!-- 引入 Spring Web 框架 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.20</version>
</dependency>
<!-- 引入单元测试 JUnit,scope 表示作用域仅在测试时生效 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
1.3. 什么是项目构建
构建(Build)是指将源代码编译、测试、打包成可部署制品(如 .jar、.war)的过程。
Maven 通过**生命周期(Lifecycle)**来管理构建流程,开发者只需执行一条命令,Maven 就会按顺序执行所有步骤。
Maven 三大内置生命周期图例:

核心命令 :
mvn clean install表示先清理 target,再执行编译 -> 测试 -> 打包 -> 安装到本地仓库。
1.4. Maven 的应用场景
-
项目管理:统一管理所有模块的版本号(聚合/继承)。
-
自动化构建 :在 CI/CD(如 Jenkins)中,一条
mvn clean package即可完成编译打包。 -
依赖调解:解决企业级微服务项目中繁杂的 JAR 包版本冲突问题。
-
代码生成:通过 Archetype(原型)快速生成项目骨架。
1.5. 为什么使用 Maven
| 传统手动管理(痛点) | Maven 解决方案 |
|---|---|
手动下载 JAR,复制到 WEB-INF/lib |
通过 pom.xml 坐标自动从中央仓库下载 |
| 不同项目 JAR 版本混乱,冲突难查 | 集中管理依赖版本,提供依赖树分析 |
| 编译、打包需要手动执行 javac/jar 命令 | 标准化的生命周期,一句 mvn package 完成 |
| 项目结构百花齐放,接手成本高 | 统一目录结构,降低新成员上手成本 |
1.6. Maven 模型
Maven 的设计由四个层次组成,其核心模型图如下:

简而言之:POM 定义"做什么",生命周期定义"什么时候做",插件负责"具体怎么做",仓库负责"材料从哪里来"。
2. 初识 Maven
2.1. Maven 安装
2.1.1. 安装准备
-
系统要求:Windows / macOS / Linux。
-
前置条件 :JDK 已安装(Maven 3.5+ 需要 JDK 8 及以上)。
检查 JDK:在命令行输入
java -version,确保返回正常版本号。 -
下载地址 :Apache Maven 官网(
apache-maven-3.x.x-bin.zip)。
2.1.2. Maven 安装目录分析(解压后的文件夹)
以 apache-maven-3.9.0 为例,目录结构如下:

- 重点注意 :
conf/settings.xml是 Maven 的全局配置文件,我们后续会覆盖它(通常复制到~/.m2/目录下进行用户级配置)。
2.1.3. Maven 的环境变量
配置环境变量以便在任意目录下调用 mvn 命令。
-
Windows 配置:
-
新建系统变量
MAVEN_HOME,值为 Maven 解压根目录。 -
编辑
Path变量,添加%MAVEN_HOME%\bin。
-
-
macOS / Linux 配置 (编辑
~/.bash_profile或~/.zshrc):XMLshell export MAVEN_HOME=/Users/xxx/Develop/apache-maven-3.9.0 export PATH=$MAVEN_HOME/bin:$PATH -
验证 :打开终端输入
mvn -version,看到版本信息和 Java 信息即配置成功。
2.2. Maven 仓库配置
2.2.1. Maven 仓库概念
Maven 仓库用于存储 JAR 包和插件,其查找优先级流程如下:

-
本地仓库 :默认在
~/.m2/repository(C盘用户目录)。 -
中央仓库:全球公共仓库,由 Apache 维护。
-
远程仓库(镜像):为了加速,国内通常配置为阿里云镜像。
2.2.2. Maven 本地仓库配置
由于默认本地仓库在 C 盘,建议更改为其他盘符。
操作步骤:
-
在 Maven 解压根目录或用户目录
~/.m2/下找到settings.xml(如果 ~/.m2 下没有,复制一份 conf 下的过来)。 -
修改
<localRepository>标签:
XML
xml
<!-- settings.xml 配置文件 -->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0">
<!-- 配置本地仓库路径 (自定义) -->
<localRepository>D:/Develop/maven-repository</localRepository>
<!-- 配置阿里云镜像 (加速依赖下载) -->
<mirrors>
<mirror>
<id>aliyunmaven</id>
<name>Aliyun Maven</name>
<mirrorOf>central</mirrorOf>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
</settings>
2.3. IDEA 整合 Maven 项目
2.3.1. IDEA 的 Maven 全局配置
目的 :让 IDEA 默认使用我们自己的 Maven 目录和仓库,而不是捆绑的 Maven。
路径 :File -> Settings (Windows) / Preferences (Mac) -> Build, Execution, Deployment -> Build Tools -> Maven。
关键配置(图例):
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| Maven home path | D:/Develop/apache-maven-3.9.0 |
指向自己的 Maven 解压目录 |
| User settings file | ~/.m2/settings.xml |
勾选 Override,指向我们配置过的 settings |
| Local repository | D:/Develop/maven-repository |
勾选 Override,自动读取 settings 中的配置 |
2.3.2. IDEA 创建 Maven 的 Java Web 项目
操作流程:
-
New Project-> 选择Maven。 -
勾选
Create from archetype(原型骨架)。 -
选择
maven-archetype-webapp(用于 Java Web 项目)。 -
输入 GAV 坐标(如
groupId: com.example,artifactId: my-web-app)。 -
点击 Finish 等待生成。
生成后的项目结构补充(Java Web):
XML
text
my-web-app/
├── pom.xml
├── src/
│ └── main/
│ ├── java/ # 手动创建,放 Servlet/Controller
│ ├── resources/ # 放 properties 配置文件
│ └── webapp/ # Web 根目录
│ ├── WEB-INF/
│ │ └── web.xml # 配置 Servlet 映射
│ └── index.jsp # 首页
关键插件配置(在 pom.xml 中添加),用于指定 JDK 版本和打包方式:
XML
xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<packaging>war</packaging> <!-- 打包成 war 包 -->
<build>
<finalName>my-web-app</finalName>
</build>
2.3.3. IDEA 导入既有 Maven 项目
三种导入方式:
-
直接打开 :
File->Open,选择项目的根文件夹(包含pom.xml)。 -
作为模块导入 :
File->New->Module from Existing Sources-> 选择pom.xml。 -
侧边栏 Maven 刷新 :如果项目已导入但未识别,点击右侧边栏
Maven选项卡,点击Reload All Projects(刷新按钮)。
注意 :导入后 IDEA 会自动解析依赖,右下角会出现进度条。如果依赖报红,检查网络镜像配置或手动
mvn clean install强制下载。
2.4. Maven 项目视图
在 IDEA 右侧打开 Maven 窗口,它是管理项目的核心面板,结构图解如下:

-
生命周期(Lifecycle) :双击
clean、compile、package即可执行对应构建阶段,无需敲命令。 -
依赖(Dependencies) :展示所有引入的 JAR 包,如果有红线下划线,说明版本冲突。右键
Show Dependencies可查看冲突链路图,方便排除。 -
插件(Plugins):展示绑定的构建插件,如编译器插件、打包插件。
总结
以上内容完整覆盖了您提出的 Maven 框架大纲。从 Maven 的核心理念(POM、依赖、生命周期),到实战中的下载安装、环境变量、仓库镜像配置,再到 IDEA 的深度集成(创建 Web 项目、导入项目、使用 Maven 面板),每一个环节都附带了逻辑图、配置代码或目录结构示例。掌握这些,足以应对日常开发中的绝大多数 Maven 场景。如果您需要深入了解其中某一点(如依赖冲突的排除或私有仓库搭建),随时可以继续提问。