全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-23 12 分钟 ✍️ juanwangdev

Maven 简介与安装配置

Maven 是 Java 世界最主流的项目构建和依赖管理工具。几乎所有 Java 项目都使用 Maven,理解 Maven 的安装和配置是 Java 开发的基础。

为什么需要 Maven

传统项目构建的痛点

Bash
场景:开发一个 Java Web 项目

传统方式:

步骤1:手动下载 jar 包
- Spring 框架(10+个 jar)
- Hibernate(5+个 jar)
- 数据库驱动
- 日志库
- 测试框架
- ...几十个 jar

步骤2:放入 lib 目录
project/lib/
├── spring-core-5.3.20.jar
├── spring-context-5.3.20.jar
├── spring-web-5.3.20.jar
├── hibernate-core-5.6.10.jar
├── mysql-connector-java-8.0.28.jar
└── ...几十个

问题:
- 不知道每个库还依赖哪些库
- 版本号需要手动管理
- 不同项目 jar包可能不同版本
- 团队成员 jar包可能不一致
- 升级库需要手动替换

步骤3:编译打包
- 用 IDE 编译(不同 IDE 配置不同)
- 或用 Ant写 build.xml
- 或写 shell 脚本

问题:
- 不同项目构建方式不同
- 没有标准流程
- 新人上手困难

Maven 解决的问题

Bash
Maven 提供的解决方案:

1.依赖管理
   你只需声明:
   <dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-context</artifactId>
     <version>5.3.20</version>
   </dependency>

   Maven 自动完成:
   -下载 spring-context.jar
   - 解析 spring-context 的依赖
   - 自动下载所有依赖
   - 自动管理版本

2.标准化构建流程
   所有 Maven 项目统一流程:
   mvn clean → compile → test → package → install

   不需要:
   - 手动编译
   - 手动写脚本
   - 学习不同项目的构建方式

3.项目结构标准化
   所有 Maven 项目统一目录:
   src/main/java/     ← 源码
   src/main/resources/ ←资源
   src/test/java/     ← 测试
   target/            ← 输出

   新人一看就懂,无需适应不同项目结构

Maven 核心概念

Maven 是什么

Maven =项目构建 + 依赖管理 +项目信息管理

XML
┌────────────────────────────────────────────────────────┐
│                      Maven                              │
├────────────────┬────────────────┬──────────────────────┤
│   项目构建      │   依赖管理      │   项目信息管理        │
│                │                │                      │
│ -编译          │ -自动下载       │ -项目名称、描述       │
│ - 测试         │ -版本管理       │ -开发者信息           │
│ -打包          │ -传递依赖       │ -许可证               │
│ -发布          │ -仓库管理       │ -文档生成             │
└────────────────┴────────────────┴──────────────────────┘

Maven 核心组件

组件说明
POM项目对象模型,pom.xml 配置文件
坐标groupId:artifactId:version,唯一标识构件
依赖项目需要的外部库
仓库存储构件的地方(本地、中央、私有)
生命周期构建阶段的顺序(compile → test → package)
插件执行具体构建任务(编译、打包等)

Maven 与 Ant、Gradle对比

特性AntMavenGradle
构建方式过程式(写脚本)声明式(写配置)声明式 + DSL
依赖管理手动自动自动
标准化强(约定优于配置)
配置文件build.xmlpom.xmlbuild.gradle
学习难度较高
主流程度较少最主流增长快

选择建议

XML
- 传统企业项目:Maven(稳定、标准)
- Android 项目:Gradle(官方推荐)
- 新技术栈项目:Gradle(灵活)
- 简单脚本任务:Ant(过程式控制)

Maven 安装

前置要求

Bash
必须先安装 JDK:

检查 JDK:
java -version

输出:
java version "17.0.2"
Java(TM) SE Runtime Environment

检查 JAVA_HOME:
echo $JAVA_HOME   # Linux/Mac
echo %JAVA_HOME%  # Windows

输出:
/usr/lib/jvm/java-17   # Linux
C:\Program Files\Java\jdk-17   # Windows

如果没有 JAVA_HOME:
- 需要先配置 JDK
- Maven 无法运行

Windows 安装步骤

Bash
步骤1:下载 Maven

官网:https://maven.apache.org/download.cgi

下载:apache-maven-3.9.6-bin.zip

步骤2:解压到指定目录

解压到:D:\apache-maven-3.9.6

目录结构:
D:\apache-maven-3.9.6\
├── bin/          ← 命令脚本
├── boot/         ← 类加载器
├── conf/         ← 配置文件(settings.xml)
├── lib/          ← Maven 运行库
└── LICENSE
└── NOTICE
└── README.txt

步骤3:配置环境变量

系统环境变量:
MAVEN_HOME=D:\apache-maven-3.9.6

Path 追加:
%MAVEN_HOME%\bin

步骤4:验证安装

打开命令行:
mvn -v

输出:
Apache Maven 3.9.6
Maven home: D:\apache-maven-3.9.6\boot\plexus-classworlds-2.8.6.jar
Java version: 17.0.2, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk-17
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10"

安装成功!

Linux/Mac 安装步骤

Bash
# 方式1:使用包管理器(推荐)

# Mac(Homebrew)
brew install maven

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install maven

# CentOS/RHEL
sudo yum install maven

# 方式2:手动安装

# 下载
wget https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz

# 解压
tar -xzf apache-maven-3.9.6-bin.tar.gz
sudo mv apache-maven-3.9.6 /opt/

# 配置环境变量
echo 'export MAVEN_HOME=/opt/apache-maven-3.9.6' >> ~/.bashrc
echo 'export PATH=$MAVEN_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

# 验证
mvn -v

IDE 内置 Maven

text
IntelliJ IDEA:
- 内置 Maven,无需单独安装
- Settings → Build → Build Tools → Maven
- 可使用内置或指定外部 Maven

Eclipse:
- 内置 Maven(m2e插件)
- Preferences → Maven → Installations
- 可添加外部 Maven

建议:
- 开发时使用 IDE 内置 Maven 即可
- 命令行构建时使用外部 Maven
- 保持版本一致

Maven 配置

settings.xml 配置文件

settings.xml 是 Maven 的全局配置文件

配置位置说明优先级
${MAVEN_HOME}/conf/settings.xml全局配置
${user.home}/.m2/settings.xml用户配置

建议使用用户级配置,不影响其他用户。

创建用户级 settings.xml

text
# 创建 .m2 目录
mkdir ~/.m2   # Linux/Mac
mkdir %USERPROFILE%\.m2   # Windows

# 复制模板
cp ${MAVEN_HOME}/conf/settings.xml ~/.m2/settings.xml

# 或直接创建
touch ~/.m2/settings.xml

settings.xml 基础配置

text
<?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">

  <!-- ==================== 本地仓库 ==================== -->
  <!-- 默认:${user.home}/.m2/repository -->
  <localRepository>D:/maven-repo</localRepository>

  <!-- ==================== 镜像配置 ==================== -->
  <mirrors>
    <!-- 阿里云公共仓库(推荐国内使用) -->
    <mirror>
      <id>aliyun</id>
      <mirrorOf>central</mirrorOf>
      <name>阿里云公共仓库</name>
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror>

    <!-- 阿里云 Spring 仓库 -->
    <mirror>
      <id>aliyun-spring</id>
      <mirrorOf>spring</mirrorOf>
      <name>阿里云 Spring仓库</name>
      <url>https://maven.aliyun.com/repository/spring</url>
    </mirror>
  </mirrors>

  <!-- ==================== 仓库配置 ==================== -->
  <repositories>
    <repository>
      <id>central</id>
      <url>https://repo.maven.apache.org/maven2</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>

  <!-- ==================== 插件仓库 ==================== -->
  <pluginRepositories>
    <pluginRepository>
      <id>central</id>
      <url>https://repo.maven.apache.org/maven2</url>
    </pluginRepository>
  </pluginRepositories>

  <!-- ==================== Profile ==================== -->
  <profiles>
    <profile>
      <id>jdk-17</id>
      <activation>
        <jdk>17</jdk>
      </activation>
      <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
      </properties>
    </profile>
  </profiles>

</settings>

重要配置详解

1. 本地仓库路径(localRepository)

text
默认本地仓库:
- Windows:%USERPROFILE%\.m2\repository
- Linux/Mac:~/.m2/repository

修改原因:
- 默认在用户目录,可能空间不足
- 统一管理,方便清理

建议:
<localRepository>D:/maven-repo</localRepository>

2. 镜像配置(mirrors)—— 重要

text
为什么需要镜像:

中央仓库在国外:
https://repo.maven.apache.org/maven2

国内下载问题:
- 速度慢(几十 KB/s)
- 可能连接失败
- 影响开发效率

阿里云镜像:
https://maven.aliyun.com/repository/public

效果:
- 下载速度提升到MB/s
- 稳定可靠
- 国内开发必备

配置:
<mirror>
  <id>aliyun</id>
  <mirrorOf>central</mirrorOf>  ← 替代中央仓库
  <name>阿里云公共仓库</name>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

mirrorOf 说明:
- central:替代中央仓库
- *:替代所有仓库
- external:*:替代所有外部仓库
- *,!repo1:替代除 repo1 外的所有仓库

3. 编译器版本配置

text
<profiles>
  <profile>
    <id>jdk-17</id>
    <activation>
      <jdk>17</jdk>  <!-- JDK 17时自动激活 -->
    </activation>
    <properties>
      <maven.compiler.source>17</maven.compiler.source>
      <maven.compiler.target>17</maven.compiler.target>
    </properties>
  </profile>
</profiles>

本地仓库

本地仓库的作用

text
Maven 依赖查找流程:

1. pom.xml 声明依赖

2. 检查本地仓库
   ~/.m2/repository/
   ├── org/
   │   └── springframework/
   │       └── spring-core/
   │           └── 5.3.20/
   │               └── spring-core-5.3.20.jar ← 查找这里

3.本地有 → 直接使用
   本地无 → 从远程仓库下载

4.下载后缓存到本地仓库
   下次构建直接使用,不再下载

优势:
- 依赖只下载一次
- 后续构建秒级完成
- 团队成员各自缓存

本地仓库目录结构

text
~/.m2/repository/
├── org/
│   └── springframework/
│       ├── spring-core/
│       │   ├── 5.3.20/
│       │   │   ├── spring-core-5.3.20.jar
│       │   │   ├── spring-core-5.3.20.pom
│       │   │   └── _remote.repositories
│       │   └── 5.3.21/
│       │       └── spring-core-5.3.21.jar
│       └── spring-context/
│           └── 5.3.20/
│               └── spring-context-5.3.20.jar
├── com/
│   └── example/
│       └── my-app/
│           ├── 1.0.0/
│           │   └── my-app-1.0.0.jar
│           └── 1.0.1/
│               └── my-app-1.0.1.jar
└── ...

结构说明:
groupId → 目录层级(点号替换为斜杠)
artifactId → 子目录
version → 版本目录

清理本地仓库

text
# 清理特定依赖
rm -rf ~/.m2/repository/org/springframework/spring-core

# 清理所有依赖(慎用)
rm -rf ~/.m2/repository

# 强制更新 SNAPSHOT
mvn clean install -U

验证 Maven 安装

验证命令

text
# 查看版本
mvn -v

# 查看详细信息
mvn -X

# 查看帮助
mvn -h

# 查看有效配置
mvn help:effective-settings

创建第一个 Maven 项目

text
# 使用 archetype 创建项目
mvn archetype:generate \
  -DgroupId=com.example \
  -DartifactId=my-app \
  -DarchetypeArtifactId=maven-archetype-quickstart \
  -DinteractiveMode=false

# 生成的项目结构
my-app/
├── pom.xml
└── src/
    ├── main/
    │   └── java/
    │       └── com/
    │           └── example/
    │               └── App.java
    └── test/
        └── java/
            └── com/
                └── example/
                    └── AppTest.java

# 编译项目
cd my-app
mvn compile

# 运行
mvn exec:java -Dexec.mainClass=com.example.App

输出:
Hello World!

常见安装问题

问题1:mvn命令找不到

text
报错:
'mvn' 不是内部或外部命令

原因:
- MAVEN_HOME 未配置
- Path 未添加 Maven bin目录

解决:
1. 配置 MAVEN_HOME
2. Path 追加 %MAVEN_HOME%\bin
3. 重启命令行
4. mvn -v验证

问题2:JAVA_HOME未配置

text
报错:
The JAVA_HOME environment variable is not defined correctly

原因:
- JAVA_HOME 未配置
- JAVA_HOME指向错误路径

解决:
1. 配置 JAVA_HOME
   Windows:%JAVA_HOME%=%ProgramFiles%\Java\jdk-17
   Linux/Mac:export JAVA_HOME=/usr/lib/jvm/java-17

2. 验证
   java -version

问题3:依赖下载失败

text
报错:
Could not transfer artifact ... from central

原因:
- 网络不通
- 中央仓库慢或不可用

解决:
配置阿里云镜像
<mirror>
  <id>aliyun</id>
  <mirrorOf>central</mirrorOf>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

问题4:settings.xml 不生效

text
排查步骤:

1. 检查配置文件位置
   mvn -X | grep "settings file"

2. 确认文件存在
   ls ~/.m2/settings.xml

3. 检查语法正确
   mvn help:effective-settings

4. IDE 可能使用不同 settings.xml
   IntelliJ: Settings → Maven → User settings file

IDE 配置 Maven

IntelliJ IDEA 配置

text
Settings → Build, Execution, Deployment → Build Tools → Maven

配置项:
- Maven home path: D:\apache-maven-3.9.6
- User settings file: D:\.m2\settings.xml(勾选 Override)
- Local repository: D:\maven-repo(勾选 Override)

验证:
IDEA 右侧 Maven 工具窗口
→ 点击 Execute Maven Goal
→ 输入 mvn -v
→ 查看输出

Eclipse 配置

text
Preferences → Maven

配置项:
- Installations: Add → 选择 Maven 安装目录
- User Settings: Global Settings / User Settings
- Local Repository: 显示当前仓库路径

验证:
右键项目 → Run As → Maven build...
→ Goals: compile
→ Run

要点总结

  1. Maven 核心功能:项目构建、依赖管理、项目信息管理
  2. 安装前置要求:必须先安装 JDK 并配置 JAVA_HOME
  3. 配置环境变量:MAVEN_HOME 和 Path
  4. settings.xml 配置:用户级配置优于全局配置
  5. 本地仓库路径:建议修改到独立目录
  6. 镜像配置必备:国内使用阿里云镜像加速
  7. 验证安装:mvn -v 查看版本信息
  8. 创建第一个项目:mvn archetype:generate

📝 发现内容有误?点击此处直接编辑

← 上一篇 Maven 核心概念
下一篇 → 坐标与版本管理
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库