You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle构建从Maven仓库下载依赖失败,但直接下载成功

Gradle依赖下载超时但wget可正常下载的解决方案

问题描述

使用Gradle从Maven中央仓库下载依赖时频繁触发超时,报错示例如下:

Could not download log4j-core-2.17.1.jar (org.apache.logging.log4j:log4j-core:2.17.1)
> Could not get resource 'https://repo.maven.apache.org/maven2/org/apache/logging/log4j/log4j-core/2.17.1/log4j-core-2.17.1.jar'.
> Could not GET 'https://repo.maven.apache.org/maven2/org/apache/logging/log4j/log4j-core/2.17.1/log4j-core-2.17.1.jar'.
> Connect to repo.maven.apache.org:443 [repo.maven.apache.org/151.101.40.215] failed: Read timed out
Could not download log4j-api-2.17.1.jar (org.apache.logging.log4j:log4j-api:2.17.1)
> Could not get resource 'https://repo.maven.apache.org/maven2/org/apache/logging/log4j/log4j-api/2.17.1/log4j-api-2.17.1.jar'.
> Could not GET 'https://repo.maven.apache.org/maven2/org/apache/logging/log4j/log4j-api/2.17.1/log4j-api-2.17.1.jar'.
> Connect to repo.maven.apache.org:443 [repo.maven.apache.org/151.101.40.215] failed: Read timed out
Could not download commons-configuration2-2.2.jar (org.apache.commons:commons-configuration2:2.2)
> Could not get resource 'https://repo.maven.apache.org/maven2/org/apache/commons/commons-configuration2/2.2/commons-configuration2-2.2.jar'.
> Could not GET 'https://repo.maven.apache.org/maven2/org/apache/commons/commons-configuration2/2.2/commons-configuration2-2.2.jar'.
> Connect to repo.maven.apache.org:443 [repo.maven.apache.org/151.101.40.215] failed: Read timed out
Could not download jersey-apache-connector-2.26.jar (org.glassfish.jersey.connectors:jersey-apache-connector:2.26)
> Could not get resource 'https://repo.maven.apache.org/maven2/org/glassfish/jersey/connectors/jersey-apache-connector/2.26/jersey-apache-connector-2.26.jar'.
> Could not HEAD 'https://repo.maven.apache.org/maven2/org/glassfish/jersey/connectors/jersey-apache-connector/2.26/jersey-apache-connector-2.26.jar'.
> Connect to repo.maven.apache.org:443 [repo.maven.apache.org/151.101.40.215] failed: Read timed out

但使用wget直接下载这些包可成功,以下是可行的解决方法:

解决方法

1. 延长Gradle网络超时时间

Gradle默认的网络超时阈值较短,国内网络环境下易触发超时。在项目根目录的gradle.properties中添加以下配置(设置为5分钟):

org.gradle.internal.http.connectionTimeout=300000
org.gradle.internal.http.socketTimeout=300000

2. 切换至国内Maven镜像

替换中央仓库为国内镜像(如阿里云),大幅提升下载速度。修改项目的build.gradle文件:

repositories {
    maven { url 'https://maven.aliyun.com/repository/public' }
    mavenCentral()
}

若需全局配置所有项目,修改settings.gradle文件:

pluginManagement {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/public' }
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven { url 'https://maven.aliyun.com/repository/public' }
    }
}

3. 检查并禁用不必要的代理

如果Gradle配置了代理但实际不需要,会导致连接异常。打开gradle.properties,注释掉代理相关配置:

# systemProp.http.proxyHost=proxy.example.com
# systemProp.http.proxyPort=8080
# systemProp.https.proxyHost=proxy.example.com
# systemProp.https.proxyPort=8080

4. 手动下载依赖至本地仓库

利用wget下载对应jar包后,放置到本地Maven仓库的对应路径。例如log4j-core-2.17.1.jar的路径为:

~/.m2/repository/org/apache/logging/log4j/log4j-core/2.17.1/

Gradle会优先读取本地仓库中的依赖。

5. 清理Gradle缓存并刷新依赖

缓存损坏可能导致下载异常,执行以下命令清理缓存并重新下载:

./gradlew clean build --refresh-dependencies

也可手动删除Gradle缓存目录(需注意备份):

rm -rf ~/.gradle/caches

内容的提问来源于stack exchange,提问作者Queenie Wong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 19:20:47