動作
Improvement #277
進行中
SC
build: 補 gradle-wrapper.jar + foojay toolchain resolver,本機/任意 JDK 可跑 :core:test
Improvement #277:
build: 補 gradle-wrapper.jar + foojay toolchain resolver,本機/任意 JDK 可跑 :core:test
狀態:
New
優先權:
Normal
被分派者:
-
開始日期:
2026-06-09
完成日期:
完成比例:
0%
預估工時:
概述
build: 補 gradle-wrapper.jar + foojay toolchain resolver,本機/任意 JDK 可跑 :core:test
¶
背景¶
T2-06a 的 53 個 :core 單元測試先前完全靠 GitHub Actions CI 驗證,本機無法跑,原因有二:
-
repo 缺
android/gradle/wrapper/gradle-wrapper.jar(二進位,先前由 agent 建置時無法生成)→./gradlew直接失敗,clone 下來的人也跑不了。 - build 設定
jvmToolchain(17),但開發機(Android Studio 內建 JBR)是 JDK 21,無獨立 JDK 17 → Gradle 找不到 17 toolchain 會報錯。
結果是只能拿 CI 當編譯器,改一行要等一輪 CI(~1 分鐘),debug 編譯錯誤時三輪來回,非常沒效率。本票補齊本機建置能力。
變更內容¶
-
新增
android/gradle/wrapper/gradle-wrapper.jar(45,457 bytes)
- 以本機快取的 gradle 9.1.0 在暫存空目錄執行
gradle wrapper --gradle-version 8.7 --distribution-type bin產生,複製進 repo - wrapper properties 已指向 gradle 8.7(與 CI 一致),此 jar 僅負責 bootstrap 下載對應發行版
android/settings.gradle.kts加 foojay toolchains resolver
plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
}
- 只有其他 JDK(如 JBR 21)的機器會自動下載 JDK 17 toolchain,
jvmToolchain(17)得以解析 - CI 不受影響:CI 由
setup-java直接提供 JDK 17,resolver 形同 no-op
驗收標準¶
-
本機
JAVA_HOME=<JBR21>下gradlew :core:test --no-daemon→ BUILD SUCCESSFUL(已實測,53 測試本機通過,gradle 8.7 + 自動補 JDK 17) -
CI
android-core-tests仍綠(確認 foojay + 既有 wrapper jar 不破壞 CI) -
其他開發者 clone 後
gradlew :core:test可直接跑(不需手動裝 JDK 17)
後續¶
- 往後改 android 程式碼:先本機跑綠再 push,CI 退回「最後關卡」角色,不再當編譯器用
- T2-06b(Room)起需 Android SDK;本機 Android Studio 已含(
%LOCALAPPDATA%\Android\Sdk)
沒有任何資料可供顯示
動作