目录
Maven 的核心概念
Maven 的作用
- 帮助自动下载和管理项目依赖(第三方库,如 Spring、Hibernate 等)。
- 默认从 Maven 中央仓库(Central Repository) 下载依赖,但国内访问较慢,通常需要配置国内镜像(如阿里云)。
Maven 仓库类型
本地仓库(Local Repository):
- 默认在
C:\Users\你的用户名\.m2\repository
,存储已下载的依赖。
远程仓库(Remote Repository):
- 中央仓库(Central):Maven 官方仓库,默认使用。
- 镜像仓库(Mirror):如阿里云仓库,用于加速下载。
- 私有仓库(如 Nexus、JFrog Artifactory):公司内部使用。
本地仓库(补充)
当你首次构建项目时,Maven 会从远程仓库(如 Maven Central)下载依赖(JAR 文件等)。
这些依赖会被缓存到本地仓库(~/.m2/repository)(~:用户主目录)。
后续构建时,Maven 会优先从本地仓库读取依赖,避免重复下载
作用
- 离线可用:一旦依赖被下载到本地,即使断网也能构建项目。
- 加速构建:避免每次构建都从远程下载。
- 共享依赖:同一台机器上的所有 Maven 项目共享本地仓库。
本地仓库路径:
Linux
/home/username/.m2/repository
(例如:/home/li/.m2/repository
)
Windows
C:\Users\username\.m2\repository
(例如:C:\Users\li\.m2\repository
)
修改本地仓库路径
可以在 Maven 的配置文件 settings.xml(Maven 安装目录的 conf/settings.xml)
中指定其他路径
<settings>
<localRepository>/path/to/your/custom/repository</localRepository>
</settings>
验证新仓库配置是否生效
运行以下命令,查看 Maven 实际使用的配置(包括解析后的 localRepository
路径):
mvn help:effective-settings
如果输出的 <localRepository>
是你自定义的路径,说明配置已生效。
常见问题
IDE 缓存问题
如果你使用 IDE(如 IntelliJ/Eclipse),可能需要:
- 刷新 Maven 项目(Reimport)。
- 清理 IDE 缓存(File → Invalidate Caches)。
从零开始配置 Maven
安装 Maven
下载 Apache Maven(如
apache-maven-3.9.5-bin.zip
)。解压到任意目录(如
D:\apache-maven-3.9.5
)。配置环境变量(确保命令行可用
mvn
):
# 系统变量新增:
MAVEN_HOME = maven安装地址
PATH = %MAVEN_HOME%\bin
4. 验证安装:
mvn -v
应输出 Maven 版本信息。
配置 Maven 仓库
找到 Maven 的 settings.xml:
- 默认路径:apache-maven-3.9.5/conf/settings.xml
- 用户级路径(推荐,避免影响其他用户,个性化配置):~/.m2/settings.xml(若不存在,可复制 conf/settings.xml 过来修改)。
配置本地仓库路径(可选):
<settings>
<localRepository>仓库地址</localRepository>
</settings>
如果不配置,默认使用 ~/.m2/repository
配置阿里云镜像(加速下载)
<mirrors>
<mirror>
<id>aliyun</id>
<name>Aliyun Maven Mirror</name>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
这样所有对 central
(中央仓库)的请求都会走阿里云镜像
在 IDEA 中应用配置
File > Settings > Build, Execution, Deployment > Build Tools > Maven:
Maven home path: 选择你的 Maven 安装目录
User settings file: 指定你的
settings.xml
Local repository: 会自动读取
settings.xml
中的配置。
刷新 Maven 项目
在 IDEA 右侧 Maven 面板 点击 刷新按钮(Reload All Maven Projects)。
测试依赖下载
在 pom.xml
中添加一个依赖(如 Spring Boot)
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
如果配置正确,Maven 会自动从阿里云镜像下载依赖到本地仓库。
依赖找不到:
(1) 阿里云镜像未正确配置
检查 settings.xml 是否真的生效:
- 确保 mirrorOf 是 central(覆盖默认中央仓库)。
- 确保 IDEA 使用的是正确的 settings.xml。
(2) 依赖不在阿里云仓库
阿里云镜像默认只代理 Maven Central,如果依赖在 其他仓库,需要额外配置(可以在setting.xml中配置,也可以在项目的pom.xml中配置)
settings.xml
<settings>
<profiles>
<profile>
<id>aliyun-repos</id>
<repositories>
<repository>
<id>aliyun-sdk</id>
<url>https://maven.aliyun.com/repository/aliyun-sdk</url>
</repository>
</repositories>
<activation>
<activeByDefault>true</activeByDefault> <!-- 默认激活 -->
</activation>
</profile>
</profiles>
</settings>
pom.xml
<repositories>
<!-- 阿里云 SDK 专属仓库 -->
<repository>
<id>aliyun-sdk</id>
<url>https://maven.aliyun.com/repository/aliyun-sdk</url>
</repository>
</repositories>
(3) 依赖版本不存在
检查
去 Maven Central 或 阿里云仓库 搜索确认。pom.xml
中的groupId
、artifactId
、version
是否正确:
如果阿里云仓库没有该版本,尝试直接下载 JAR
从阿里云官方文档或 SDK 发布页面手动下载 JAR,然后安装到本地仓库
检查依赖冲突
运行以下命令,查看依赖树是否有冲突:
mvn dependency:tree
如果存在版本冲突,在 pom.xml 中排除冲突的依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-ocr</artifactId>
<version>4.5.0</version>
<exclusions>
<exclusion>
<groupId>冲突的groupId</groupId>
<artifactId>冲突的artifactId</artifactId>
</exclusion>
</exclusions>
</dependency>