Maven 在尝试连接到 Maven Central 仓库超时的解决方案和排查步骤

Maven 在尝试连接到 Maven Central 仓库时超时。以下是一些可能的解决方案和排查步骤:

1. 检查网络连接

确保你的网络连接正常,并且能够访问外网。

  • Ping 测试:

    sh 复制代码
    ping repo.maven.apache.org
  • Telnet 测试:

    sh 复制代码
    telnet repo.maven.apache.org 443

2. 配置代理

如果你在公司网络中使用代理服务器,需要配置 Maven 使用代理。

编辑 settings.xml

找到或创建 Maven 的 settings.xml 文件,通常位于 ~/.m2/settings.xml${MAVEN_HOME}/conf/settings.xml

添加代理配置:

xml 复制代码
<settings>
  <proxies>
    <proxy>
      <id>example-proxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxy.example.com</host>
      <port>8080</port>
      <username>proxyuser</username>
      <password>proxypass</password>
      <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
    </proxy>
  </proxies>
</settings>

3. 使用镜像仓库

有时直接连接到 Maven Central 可能会很慢或不稳定,可以配置国内的镜像仓库来加速依赖下载。

编辑 settings.xml

找到或创建 Maven 的 settings.xml 文件,通常位于 ~/.m2/settings.xml${MAVEN_HOME}/conf/settings.xml

添加镜像配置:

xml 复制代码
<settings>
  <mirrors>
    <mirror>
      <id>nexus-aliyun</id>
      <name>Nexus Aliyun Mirror</name>
      <url>https://maven.aliyun.com/repository/public</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
</settings>

4. 清除本地缓存

有时候本地缓存可能导致问题,可以尝试清除本地仓库中的缓存。

删除本地仓库

删除或重命名本地 Maven 仓库目录,通常位于 ~/.m2/repository

sh 复制代码
rm -rf ~/.m2/repository/com/baomidou/mybatis-plus-core

然后重新运行 Maven 构建命令。

5. 增加超时时间

增加 Maven 的连接和传输超时时间。

编辑 settings.xml

找到或创建 Maven 的 settings.xml 文件,通常位于 ~/.m2/settings.xml${MAVEN_HOME}/conf/settings.xml

添加超时配置:

xml 复制代码
<settings>
  <profiles>
    <profile>
      <id>custom-timeouts</id>
      <properties>
        <http.connection.timeout>60000</http.connection.timeout>
        <http.socket.timeout>120000</http.socket.timeout>
      </properties>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>custom-timeouts</activeProfile>
  </activeProfiles>
</settings>

6. 使用 -U 参数强制更新依赖

使用 -U 参数强制 Maven 更新所有快照和发布版本的依赖。

sh 复制代码
mvn clean install -U

7. 检查防火墙和安全组设置

确保防火墙或安全组没有阻止对 repo.maven.apache.org 的访问。

8. 使用 VPN 或其他网络

如果上述方法都不奏效,可以尝试使用 VPN 或切换到其他网络环境进行构建。

示例:配置 Maven 使用阿里云镜像

以下是配置 Maven 使用阿里云镜像的具体步骤:

  1. 编辑 settings.xml :

    打开或创建 ~/.m2/settings.xml 文件。

  2. 添加镜像配置 :

    添加以下内容到 <settings> 标签内:

    xml 复制代码
    <settings>
      <mirrors>
        <mirror>
          <id>nexus-aliyun</id>
          <name>Nexus Aliyun Mirror</name>
          <url>https://maven.aliyun.com/repository/public</url>
          <mirrorOf>central</mirrorOf>
        </mirror>
      </mirrors>
    </settings>
  3. 保存并关闭文件

  4. 重新运行 Maven 构建:

    sh 复制代码
    mvn clean install

示例:配置 Maven 使用代理

以下是配置 Maven 使用代理的具体步骤:

  1. 编辑 settings.xml :

    打开或创建 ~/.m2/settings.xml 文件。

  2. 添加代理配置 :

    添加以下内容到 <settings> 标签内:

    xml 复制代码
    <settings>
      <proxies>
        <proxy>
          <id>example-proxy</id>
          <active>true</active>
          <protocol>http</protocol>
          <host>proxy.example.com</host>
          <port>8080</port>
          <username>proxyuser</username>
          <password>proxypass</password>
          <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
        </proxy>
      </proxies>
    </settings>
  3. 保存并关闭文件

  4. 重新运行 Maven 构建:

    sh 复制代码
    mvn clean install

总结

通过以上步骤,你应该能够解决 Maven 下载依赖时遇到的连接超时问题。如果问题仍然存在,建议检查以下几点:

  • 网络连接: 确保网络稳定。
  • 代理设置: 如果使用代理,确保配置正确。
  • 镜像仓库: 使用国内镜像仓库加快下载速度。
  • 防火墙和安全组: 确保没有阻止对 Maven Central 的访问。
相关推荐
信誓旦旦的程序猿38 分钟前
【量化系统从零构建 #04】存储设计:选型·建库·交易日历
java·人工智能·python·股票数据api·股票数据·股票数据api接口·股票api数据接口
yurenpai(27届找实习中)38 分钟前
Java 10 的 var 为什么不能随便用?从订单汇总看懂类型推断与泛型陷阱
java·开发语言·java18
Flynt2 小时前
把公司项目迁到 Spring Boot 4.0:编译通过只是开始
java·spring boot·后端
Tangyuewei2 小时前
给老 Spring 项目装个 AI Agent
java·人工智能·spring
她的男孩2 小时前
多租户和数据权限怎么共存?扒完拦截器注册链路,我找到 4 个隐蔽的坑
java·后端·架构
小溪学编程3 小时前
Java BufferedReader 详解:从基础用法到性能优化
java·python·性能优化
HZero.chen3 小时前
Java 匿名类简介
java·匿名类
用户3126874877203 小时前
Java 泛型擦除到底擦掉了什么?类型安全与桥接方法深度拆解
java
暖焰核心3 小时前
继承全解——继承、默认成员函数、切片、隐藏与虚继承
java·前端·javascript
君顾13 小时前
外卖CPS系统开发实战指南:从架构设计到部署全流程解析
java·开发语言·外卖