天天进步2015头像

IntelliJ IDEA 下载 Gradle 报 504 怎么办?华为云镜像、本地 ZIP 和代理配置(Windows)

最近我在 Windows 上用 IntelliJ IDEA 导入一个 Minecraft Fabric 模组工程。首次同步时,Gradle 一直没下载下来,控制台报了下面的错。

Server returned HTTP response code: 504 for URL:
https://services.gradle.org/distributions/gradle-9.8.2-bin.zip

排查过程中,我还遇到了 Fabric Loom 要求 Java 25,以及 :downloadAssets 下载游戏资源卡住的问题。三种情况看起来都像「IDEA 卡在 Gradle」,但需要改的配置各不相同。这篇先解决最早遇到的 Gradle ZIP 下载 504,再说怎么判断后面的报错。

一、先看失败的 URL

如果日志指向 services.gradle.org/distributions/gradle-*-bin.zip,说明失败发生在 Gradle Wrapper 获取 Gradle 发行包这一步。504 表示请求经过的网关等待上游响应超时。偶尔出现一次可以先重试,持续失败再换下载路径。

打开项目的 gradle/wrapper/gradle-wrapper.properties,查看 distributionUrl。这行同时决定了下载来源、Gradle 版本和发行包类型。本例是 9.8.2-bin.zip,换源时保留这个文件名。其他工程以自己的配置为准。

先在 IDEA 的 Terminal 里进入工程根目录,执行下面这条命令,把下载问题单独拿出来验证。

.\gradlew.bat --version

二、方案一:换成华为云 Gradle 镜像

修改项目根目录下的 gradle/wrapper/gradle-wrapper.properties。原配置如下。

distributionUrl=https\://services.gradle.org/distributions/gradle-9.8.2-bin.zip

换成华为云镜像地址,并核对发行包的 SHA-256。下面的校验值对应 Gradle 9.8.2 的 bin 包。

distributionUrl=https\://repo.huaweicloud.com/gradle/gradle-9.8.2-bin.zip
distributionSha256Sum=21bd5da2de49b642904077f38c0efdc7778e92b3ed0889392dca61b97e389607

项目已有 distributionSha256Sum 时,保留和该版本、包类型对应的值即可,避免写两条。镜像目录可以先查版本是否收录,实际能否下载取决于当前网络。如果返回 404、浏览器保存下来的是错误页面,或 Wrapper 报校验失败,换另一个下载来源,保留校验。

华为云 Gradle 镜像目录 · Gradle 官方发行包校验值

保存后,再运行一次 .\gradlew.bat --version。能看到 Gradle 版本后,在 IDEA 右侧 Gradle 工具窗口点击 Reload All Gradle Projects(重新加载所有 Gradle 项目)。如果之前手动改过 IDEA 的 Gradle 来源,也检查一下它是否选用了项目的 Gradle Wrapper。

「从磁盘重新加载」会让 IDEA 重读文件。「重新加载 Gradle 项目」才会触发项目同步。这个区别在改完下载地址后很实用。

JetBrains Gradle 设置文档 · JetBrains 项目同步说明

三、方案二:浏览器下载 ZIP,Wrapper 读取本地文件

如果浏览器能下载,但 IDEA 里的 Wrapper 一直失败,可以先下载同版本 ZIP。官方入口也可以试一下 downloads.gradle.org。下载完成后保留 ZIP,放在例如 D:\Tools\gradle-9.8.2-bin.zip 的位置。

用 PowerShell 核对文件的 SHA-256。

Get-FileHash 'D:\Tools\gradle-9.8.2-bin.zip' -Algorithm SHA256

确认与官方值一致后,把 Wrapper 配置临时改成本地文件 URL。Windows 盘符前用三个斜杠,路径里用正斜杠。

distributionUrl=file:///D:/Tools/gradle-9.8.2-bin.zip

再次执行 .\gradlew.bat --version。Wrapper 会读取并解包本地发行包。这个路径只适用于本机,团队提交时应使用团队可访问的 HTTPS 地址。切回 HTTPS 后,Wrapper 可能会按新地址重新缓存发行包。

Gradle 官方 ZIP 下载入口 · Gradle Wrapper 文档

四、方案三:已有代理时,为 Gradle 配置 JVM 代理

如果电脑已经运行本地 HTTP 或混合代理,可以把配置写入用户级的 %USERPROFILE%\.gradle\gradle.properties。如果自定义了 GRADLE_USER_HOME,用那个目录下的文件。下面用 7890 举例,端口以代理软件实际显示为准。

systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=7890
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=7890

代理需要保持运行。修改后重新执行 Wrapper 命令,再同步工程。用户级设置可能影响其他 Gradle 项目,临时使用后可以删掉这几行。若有代理凭据,留在本机配置中。

镜像是下载地址,代理是访问这个地址时走的网络路径。 华为云镜像 URL 填在 distributionUrl,proxyHost 填实际的代理主机。

Gradle 代理配置文档

五、Gradle 能显示版本了,为什么项目仍然同步失败?

.\gradlew.bat --version 验证的是发行包和 Gradle 启动。再执行 .\gradlew.bat build,才会验证项目配置、依赖和编译。以我这次的 Fabric 工程为例,后续遇到了两个不同阶段的问题。

日志里的关键词当前卡在哪一步怎么查
gradle-9.8.2-bin.zip + 504下载 Gradle 发行包查 distributionUrl、镜像、本地 ZIP 或代理
Could not resolve + 依赖仓库 URL解析插件或项目依赖查完整报错里的具体仓库、坐标和状态码
Dependency requires at least JVM runtime version 25Gradle 运行 JDK 不满足插件要求查看 --version 输出中的 Daemon JVM
:downloadAssetsFabric Loom 下载 Minecraft 游戏资源用 .\gradlew.bat downloadAssets --info 查看实际失败地址

我这次使用的 Loom 版本要求 JDK 25。虽然已经在 IDEA 里改了设置,PowerShell 中的 Gradle 仍显示 Daemon JVM: D:\Jdk\Jdk21。IDEA 的 Gradle JVM 设置和终端的 JAVA_HOME 需要分别检查。

我的 JDK 25 装在 D:\Jdk\Jdk25,所以在当前 PowerShell 会话里这样验证。

$env:JAVA_HOME = 'D:\Jdk\Jdk25'
$env:Path = "$env:JAVA_HOME\bin;$env:Path"
.\gradlew.bat --version

IDEA 中对应的位置是 Settings → Build, Execution, Deployment → Build Tools → Gradle → Gradle JVM。如果终端里的 Daemon 仍选中旧版本,再检查 org.gradle.java.home 和项目是否配置了 gradle/gradle-daemon-jvm.properties。这个工程用 Java 25 跑构建工具,Minecraft 1.21.1 模组仍保留 Java 21 编译目标。

后面我单独重跑了 downloadAssets,最终看到 BUILD SUCCESSFUL in 4s。这条日志验证的是资源下载任务,完整构建仍以 build 的结果为准。

JetBrains Gradle JVM 设置 · Gradle Daemon JVM 配置

六、最短排查顺序

遇到同样的 504,我会先看报错 URL,确认它是不是 Gradle 发行包。接着检查工程要求的版本,选可用的镜像或经过校验的本地 ZIP,跑通 gradlew.bat --version。最后回到 IDEA 重新加载 Gradle 项目。同步后若出现新的报错,再按新的失败地址或 JVM 要求处理。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/exlink2012/article/details/170292932

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--