From caaed882985f7bbe7bdf66d76e2146d53a1cc2c6 Mon Sep 17 00:00:00 2001 From: wangjia <809946525@qq.com> Date: Sun, 26 Jul 2026 11:15:14 +0800 Subject: [PATCH] =?UTF-8?q?ci(android):=20gradle=20=E5=8F=91=E8=A1=8C?= =?UTF-8?q?=E7=89=88=20+=20maven=20=E4=BE=9D=E8=B5=96=E8=B5=B0=E5=9B=BD?= =?UTF-8?q?=E5=86=85=E9=95=9C=E5=83=8F(=E4=BF=AE=20#215=2022min=20?= =?UTF-8?q?=E6=8C=82)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #215 android 跑到 flutter build apk 的 Gradle 阶段挂了 ~17min: "Gradle threw an error while downloading artifacts from the network" "java.io.EOFException: SSL peer shut down incorrectly"(org.gradle.wrapper.Download) ——这是 sing-box 之外的第二个 GFW 网络坑:Gradle 要下载发行版和 maven 依赖, 走了被墙的 services.gradle.org / dl.google.com / maven central,SSL 被重置。 env 里配了 GOPROXY/PUB/FLUTTER 镜像,唯独 Gradle+Maven 没配。改: - gradle-wrapper.properties: distributionUrl → 腾讯云 gradle 镜像(同一份 zip)。 - settings.gradle / build.gradle: repositories 前置阿里云 google/public/gradle-plugin 镜像,原 google()/mavenCentral()/gradlePluginPortal() 保留作 fallback。 镜像已逐个验证:腾讯 gradle-8.7-bin.zip(206)、阿里云 AGP 8.6.0 pom(200)、 kotlin.android 2.2.0(200)均可取。全球通用,墙内不再依赖被墙源。 Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01A79VtQA1BwTuQN1ThpvYpo --- client/android/build.gradle | 3 +++ client/android/gradle/wrapper/gradle-wrapper.properties | 4 +++- client/android/settings.gradle | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/client/android/build.gradle b/client/android/build.gradle index d2ffbff..8f2e274 100644 --- a/client/android/build.gradle +++ b/client/android/build.gradle @@ -1,5 +1,8 @@ allprojects { repositories { + // 国内镜像优先(见 settings.gradle 同注);原仓库保留作 fallback。 + maven { url "https://maven.aliyun.com/repository/google" } + maven { url "https://maven.aliyun.com/repository/public" } google() mavenCentral() } diff --git a/client/android/gradle/wrapper/gradle-wrapper.properties b/client/android/gradle/wrapper/gradle-wrapper.properties index 4518132..72153b1 100644 --- a/client/android/gradle/wrapper/gradle-wrapper.properties +++ b/client/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +# 国内镜像:services.gradle.org 被 GFW 墙(SSL 重置),CI runner 在墙内下载发行版会失败。 +# 腾讯云 gradle 镜像提供同一份 zip。见 client/android/{settings,build}.gradle 的 maven 镜像同理。 +distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.7-bin.zip diff --git a/client/android/settings.gradle b/client/android/settings.gradle index 60dcd4a..e5263dc 100644 --- a/client/android/settings.gradle +++ b/client/android/settings.gradle @@ -10,6 +10,11 @@ pluginManagement { includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") repositories { + // 国内镜像优先(CI runner 在墙内,直连 google/central/gradlePluginPortal 会被 GFW 重置); + // 原仓库保留作 fallback。与 deploy-client.yml 的 GOPROXY/PUB 镜像同理。 + maven { url "https://maven.aliyun.com/repository/google" } + maven { url "https://maven.aliyun.com/repository/public" } + maven { url "https://maven.aliyun.com/repository/gradle-plugin" } google() mavenCentral() gradlePluginPortal()