<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Maven - tag - 沐木</title><link>https://oldletter.cn/tags/maven/</link><description>Maven - tag - 沐木</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Wed, 24 Nov 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://oldletter.cn/tags/maven/" rel="self" type="application/rss+xml"/><item><title>Maven 国内源配置指南（2026 版）</title><link>https://oldletter.cn/posts/java-02-maven/</link><pubDate>Wed, 24 Nov 2021 00:00:00 +0000</pubDate><author>mumu</author><guid>https://oldletter.cn/posts/java-02-maven/</guid><description><![CDATA[<blockquote>
<p>📅 2026-05-15 | 🏷️ Maven, Gradle, 信创, DevOps | 📖 阅读约 12 分钟</p></blockquote>
<h2 id="前言">前言</h2>
<p>&ldquo;Could not resolve dependencies&rdquo;，这大概是每个 Java 开发者在国内网络环境下更不想看到的错误。</p>
<p>Maven Central 在国内访问速度慢、不稳定，尤其在企业内网和信创环境下，配置国内镜像源几乎是项目初始化的第一步。但你真的会配吗？镜像优先级怎么算？私服和镜像怎么共存？Gradle 的配置和 Maven 有什么不同？</p>
<p>这篇文章给你一个<strong>完整的、可直接复制粘贴的配置方案</strong>，覆盖 Maven、Gradle、私服、代理、信创环境，2026 年当前公开版。</p>
<hr>
<h2 id="一为什么需要国内镜像">一、为什么需要国内镜像</h2>
<p>Maven Central（<code>https://repo.maven.apache.org/maven2</code>）物理上在美国，国内访问存在以下问题：</p>
<ol>
<li><strong>延迟高</strong>：HTTPS 握手 + TCP 往返，单次请求 500ms-2s</li>
<li><strong>不稳定</strong>：国际链路抖动，下载大文件容易中断</li>
<li><strong>带宽受限</strong>：高峰期下载速度可能只有几十 KB/s</li>
<li><strong>安全合规</strong>：信创/政企环境不允许直接访问外网</li>
</ol>
<p>国内镜像源同步了 Maven Central 的所有包，物理上在国内，访问速度提升 10-100 倍。</p>
<div class="details admonition note open">
    <div class="details-summary admonition-title">
        <i class="icon far fa-pen-to-square" aria-hidden="true"></i>Maven 依赖解析机制<i class="details-icon fas fa-angle-right" aria-hidden="true"></i>
    </div>
    <div class="details-content">
        <div class="admonition-content"><p>Maven 的依赖解析遵循<strong>下限路径优先</strong>原则。当同一个依赖存在多个版本时，Maven 会在依赖树中选择深度更浅（路径下限）的那个版本。如果深度相同，则按 POM 中声明的顺序选择第一个。</p>
<p>形式化地说，对于依赖树中的节点 D，其解析版本为所有候选版本中深度下限的那个。因此<strong>直接声明的依赖优先级高于传递依赖</strong>。</p>
</div>
    </div>
</div>
<hr>
<h2 id="二maven-配置">二、Maven 配置</h2>
<h3 id="21-settingsxml-完整配置">2.1 settings.xml 完整配置</h3>
<p>将以下内容保存到 <code>~/.m2/settings.xml</code>（全局配置）或 <code>$MAVEN_HOME/conf/settings.xml</code>（安装级别）：</p>]]></description></item></channel></rss>