一、Maven 是什么?为什么需要它?
1.1 核心定义
Maven 是 Apache 基金会推出的项目构建自动化工具,基于 POM(Project Object Model,项目对象模型)理念。它通过一个中央配置文件(pom.xml)来统一管理项目的整个构建生命周期,包括但不限于以下方面:
- 编译:将源代码编译成字节码
- 测试:执行单元测试和集成测试
- 打包:将项目打包成可部署的格式(如 JAR、WAR)
- 部署:将构建产物发布到仓库或服务器
- 文档生成:自动生成项目文档
- 依赖管理:处理项目所需的第三方库
Maven 有效解决了传统 Java 项目中常见的两个痛点:
- "jar 包地狱":手动管理依赖时经常出现的版本冲突、依赖缺失等问题
- 构建流程混乱:不同开发者使用不同构建方式导致的构建不一致性
1.2 核心价值
依赖管理自动化
Maven 通过中央仓库机制自动处理依赖关系:
- 自动从 Maven 中央仓库(或配置的私有仓库)下载所需依赖
- 自动解析和传递依赖(例如 A 依赖 B,B 依赖 C,Maven 会自动引入 C)
- 支持依赖范围(compile、provided、runtime、test)
- 通过依赖仲裁机制解决版本冲突
- 示例:添加一个依赖只需在 pom.xml 中声明
<dependency>即可,无需手动下载 jar 包
构建流程标准化
Maven 定义了清晰的构建生命周期:
- 清理阶段(clean):删除 target 目录
- 编译阶段(compile):编译主代码
- 测试阶段(test):执行单元测试
- 打包阶段(package):生成 JAR/WAR 文件
- 安装阶段(install):安装到本地仓库
- 部署阶段(deploy):发布到远程仓库
每个阶段都对应一个或多个插件目标,开发者可以通过简单的命令(如 mvn clean package)执行标准化构建。
项目结构规范化
Maven 强制约定标准目录结构:
src/
main/
java/ # 主代码
resources/ # 主资源文件
webapp/ # WEB 应用资源
test/
java/ # 测试代码
resources/ # 测试资源文件
target/ # 构建输出
pom.xml # 项目配置文件
这种一致性使得:
- 新成员能快速理解项目结构
- IDE 可以无缝支持
- 构建工具能准确定位各类资源
扩展性强
Maven 的插件机制提供了强大的扩展能力:
-
官方插件:
- 编译器插件(maven-compiler-plugin)
- 测试插件(maven-surefire-plugin)
- 部署插件(maven-deploy-plugin)
-
第三方插件:
- Tomcat 插件(tomcat7-maven-plugin):支持直接运行 Web 应用
- Jetty 插件(jetty-maven-plugin):快速开发时使用
- 代码质量插件(pmd、checkstyle、findbugs)
-
多模块支持:
- 通过
<modules>配置管理复杂项目的多个子模块 - 支持模块间的依赖关系管理
- 示例:一个企业级项目可以分为 core、web、service 等多个模块,通过父 POM 统一管理
- 通过
二、Maven 环境搭建(Windows/Linux 通用)
2.1 前置条件
JDK 要求
- JDK 1.8+:Maven 3.8 及以上版本需要 Java 8 或更高版本支持
- 验证方法:
应显示类似java -versionjava version "1.8.0_301"的信息
环境变量配置
- JAVA_HOME 必须正确配置:
- Windows:在系统环境变量中添加
JAVA_HOME,值为 JDK 安装路径(如C:\Program Files\Java\jdk1.8.0_301) - Linux/macOS:在
~/.bashrc或~/.zshrc中添加:export JAVA_HOME=/path/to/jdk export PATH=$JAVA_HOME/bin:$PATH
- Windows:在系统环境变量中添加
2.2 下载与安装
下载步骤
- 访问 Maven 官网
- 选择 Binary zip archive(如
apache-maven-3.9.6-bin.zip) - 下载后校验文件完整性(可选):
certutil -hashfile apache-maven-3.9.6-bin.zip SHA512
安装流程
-
解压要求:
- 目标路径不能包含中文或空格(错误示例:
C:\Program Files\maven) - 推荐路径:
D:\devtools\apache-maven-3.9.6
- 目标路径不能包含中文或空格(错误示例:
-
环境变量配置:
- Windows:
- 新建系统变量
MAVEN_HOME= 解压路径 - 编辑
Path添加%MAVEN_HOME%\bin
- 新建系统变量
- Linux/macOS:
export MAVEN_HOME=/opt/apache-maven-3.9.6 export PATH=$MAVEN_HOME/bin:$PATH
- Windows:
-
验证安装:
mvn -v成功输出应包含:
Apache Maven 3.9.6 Maven home: D:\devtools\apache-maven-3.9.6 Java version: 1.8.0_301...
2.3 配置本地仓库(关键优化)
修改默认仓库位置
-
原仓库路径问题:
- 默认在
C:\Users\用户名\.m2\repository会占用系统盘空间 - 重装系统可能导致依赖丢失
- 默认在
-
配置步骤:
- 打开
MAVEN_HOME/conf/settings.xml - 找到
<localRepository>标签(约第53行) - 修改为(示例):
<localRepository>D:\maven-repo</localRepository> - 注意:路径不要用中文,建议全英文且无空格
- 打开
-
首次运行效果:
- 执行
mvn clean install后会自动创建指定目录 - 目录结构示例:
D:\maven-repo ├── junit ├── org └── com
- 执行
2.4 配置阿里云镜像(加速下载)
镜像配置详解
-
原始问题:
- 默认连接中央仓库(repo.maven.apache.org)速度慢
- 国内访问可能超时

最低0.47元/天 解锁文章
1682

被折叠的 条评论
为什么被折叠?



