最直接推荐的方式是修改 settings.xml 中的 节点:在用户级 ~/.m2/settings.xml(Windows 为 %USERPROFILE%\.m2\settings.xml)中添加绝对路径,如 C:/maven-repo,修改后需刷新 IDE 项目依赖。

修改 settings.xml 中的 节点
最直接、推荐的方式是在 Maven 的 settings.xml 文件中显式指定本地仓库路径。这个文件优先级高于默认位置(~/.m2/repository),且对当前用户或全局生效,不会影响其他项目结构。
- 用户级配置:编辑
~/.m2/settings.xml(Windows 是%USERPROFILE%\.m2\settings.xml) - 若该文件不存在,可从
$M2_HOME/conf/settings.xml复制一份再修改 - 在
根节点内添加或修改:/path/to/your/local/repo - 路径建议使用绝对路径;Windows 下注意用正斜杠或双反斜杠,例如
C:/maven-repo或C:\\maven-repo - 修改后无需重启 IDE,但已有项目需刷新 Maven 依赖(如 IntelliJ 的
Reload project)
通过 -Dmaven.repo.local 命令行参数临时覆盖
适合调试、CI 脚本或一次性的构建场景,不改动配置文件,优先级高于 settings.xml 中的设置。
- 执行命令时加上参数即可:
mvn clean install -Dmaven.repo.local=/tmp/mvn-local-repo
- 该参数只对本次命令生效,不影响后续构建
- 常见于 Docker 构建或 Jenkins Pipeline 中隔离仓库缓存,避免污染宿主机
.m2 - 注意:IDE(如 Eclipse、IntelliJ)默认不读取该参数,除非你在运行配置里显式传入
环境变量 M2_REPO 不再被现代 Maven 支持
Maven 3.0+ 已移除对 M2_REPO 环境变量的识别。如果你在文档或老教程里看到它,现在设了也无效。
- 设置
export M2_REPO=/some/path(Linux/macOS)或set M2_REPO=C:\path(Windows)不会改变仓库位置 - 该变量曾用于 Ant 或早期 Maven 2 插件中做路径占位符,现在仅部分第三方工具(如旧版 Nexus CLI)可能参考它
- 不要把它和
M2_HOME混淆:M2_HOME指向 Maven 安装目录,与仓库路径无关
IDE 内置 Maven 和自定义 settings.xml 的冲突问题
IntelliJ / Eclipse 默认使用自带 Maven 或系统 Maven,但可能忽略你手动修改的 ~/.m2/settings.xml,尤其当你在 IDE 设置里指定了另一个 settings.xml 路径时。
立即学习“Java免费学习笔记(深入)”;
- IntelliJ:检查
Settings → Build → Build Tools → Maven → User settings file是否指向了正确的文件 - Eclipse:打开
Preferences → Maven → User Settings,确认勾选了Use settings file from并路径正确 - 如果 IDE 使用嵌入式 Maven(bundled),它可能自带一份只读
settings.xml,此时必须显式切换为外部配置 - 验证是否生效:执行
mvn help:effective-settings,查看输出中的localRepository字段值
mvn help:effective-settings 输出,而不是文件是否存在或 IDE 是否“看起来刷新了”。很多问题其实卡在 IDE 加载了错误的 settings 文件,或者用了 bundled Maven 却没配 user settings。










