ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Kotlin 离线构建实战手册:依赖一次下载,全程断网也能编译

Kotlin 离线构建实战手册:依赖一次下载,全程断网也能编译 Kotlin 离线构建实战手册依赖一次下载全程断网也能编译【免费下载链接】kotlinThe Kotlin Programming Language.项目地址: https://gitcode.com/GitHub_Trending/ko/kotlin这个仓库是 Kotlin 编译器本体而不是语言 SDK源码、前端、后端和 Native 工具链都在这里。首次联网构建会下载intellij-core、idea-full等体积相当大的依赖缓存在本地 Gradle 仓库后后续构建就可以完全断网。读完这篇你能独立完成一次联网下全量依赖 → 离线构建 → 校验失败时修复的完整流程。一、动手前环境与前置准备JDK 17 及以上。构建用 Gradle toolchains缺失的 JDK 会从 Eclipse Adoptium 自动下载想只用本机 JDK按 gradle.properties 中org.gradle.java.installations.fromEnv列出的变量名配置JDK_1_8、JDK_11、JDK_17_0、JDK_21_0、JDK_25_0等内存至少 8 GB 可用默认堆上限 6 GB参数写在gradle.properties的org.gradle.jvmargsWindows 需开启长路径git config core.longpaths true若要构建 Kotlin/NativemacOS 需 Xcode 26.4 及以上Linux 需 glibc 2.23 及以上Windows 需 VS2019 C 构建工具14.29加 Windows SDK 10.0.18362.0 及以上要求见 kotlin-native/README.md注意根目录gradle.properties里kotlin.native.enabled默认是falseNative 能力要显式打开二、分步操作1. 克隆仓库准备本地构建先把源码拉到本地Native 相关特性默认关闭按需再打开git clone https://gitcode.com/GitHub_Trending/ko/kotlin cd kotlin # 需要构建 Native 时在根目录创建/修改 local.properties加入 # kotlin.native.enabledtrue跑完这一步git status干净、目录里能看到gradlew和local.properties就算成功。2. 首次联网把依赖一次性下全离线的前提是缓存完整所以第一次必须联网构建。dist任务会把编译器分发版组装到dist/kotlinc/跑一次它构建链路上的依赖就都进本地缓存了./gradlew dist成功标志是最后输出BUILD SUCCESSFUL且dist/kotlinc/目录已生成。注意依赖体积很大网络差时下载容易超时。首次执行加两个参数把超时放宽到 60 秒即可./gradlew dist -Dhttp.socketTimeout60000 -Dhttp.connectionTimeout600003. 缓存就位后切换离线构建断网环境内网、演示现场下给任意任务加上--offlineGradle 只用本地缓存、不再尝试联网./gradlew :kotlin-native:dist --offline验证方式全程没有新的下载日志最后BUILD SUCCESSFUL。对 Native 编译产物在./dist里可以直接用./dist/bin/kotlinc-native hello.kt -o hello试编译。小贴士跑测试用./gradlew compilerTest --offline验证全量测试只想看核心库测试则跑./gradlew coreLibsTest --offline。要复刻 CI 的完整构建再加-Pteamcitytrue。4. 校验元数据失效时的修复路径仓库对全部依赖开了 Gradle 依赖校验哈希和名单写在 gradle/verification-metadata.xml 里。构建改了依赖后通常不用手工维护——仓库自带脚本会先清掉旧的components段、再重新生成./scripts/update-verification-metadata.sh如果你需要手动拆成两步先删components段Linux/Git for Windowssed -i -e /components/,/\/components/d gradle/verification-metadata.xml ./gradlew --write-verification-metadata sha256 -Pkotlin.native.enabledtrue resolveDependenciesresolveDependencies会解析所有平台含插件下载的依赖重新生成后再次./gradlew dist --offline不再报Dependency verification failed即修复完成。三、踩坑记录1. 构建直接报Dependency verification failed现象构建还没进入编译阶段就失败提示某个依赖哈希对不上。 原因本地仓库中该构件缺失或内容与校验文件记录不一致。 解决不要直接删文件绕过按第 4 步走清components段 重新生成校验数据。2. 明明加了-Pkotlin.native.enabledtrueNative 依赖却没进校验文件现象生成校验元数据后native 相关的构件缺失。 原因local.properties的优先级高于命令行-P文件里的kotlin.native.enabledfalse会把参数顶掉。 解决打开local.properties删掉或改成kotlin.native.enabledtrue后重新生成。3. 首次构建在下载阶段卡死或超时现象卡在拉取intellij-core、idea-full附近最终报连接/读超时。 原因这两个依赖体积大默认超时在网络波动时不够。 解决首次运行加上-Dhttp.socketTimeout60000 -Dhttp.connectionTimeout60000跑完这一次后就可以一直--offline了。四、速查表场景命令 / 参数说明首次联网构建./gradlew dist产出dist/kotlinc/依赖入本地缓存超时放宽-Dhttp.socketTimeout60000 -Dhttp.connectionTimeout60000首次大体积依赖下载用离线构建./gradlew 任务 --offline只用本地缓存Native 构建./gradlew :kotlin-native:dist加:kotlin-native:distPlatformLibs可带平台库全量 Native 构建./gradlew :kotlin-native:bundle产物在./dist复刻 CI-Pteamcitytrue本地默认跳过 proguard 和 jar 压缩重新生成校验./scripts/update-verification-metadata.sh等价于清components段 --write-verification-metadata sha256全平台解析依赖./gradlew resolveDependencies生成校验数据前用流程走到这里已经完整联网一次把缓存攒足之后断网跑构建遇到校验报错回到第 4 步修复即可。下次要扩展目标平台时记得先确认local.properties没有把 Native 开关关回去。【免费下载链接】kotlinThe Kotlin Programming Language.项目地址: https://gitcode.com/GitHub_Trending/ko/kotlin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表