
如何从源码第一次构建 Kotlin 编译器并运行主要 Gradle 任务【免费下载链接】kotlinThe Kotlin Programming Language.项目地址: https://gitcode.com/GitHub_Trending/ko/kotlin如果你克隆了 Kotlin 语言仓库想第一次在本地把编译器构建出来并跑通仓库提供的几个主要 Gradle 任务清理、打包编译器发行版、安装构件、跑测试这篇文章给出 ReadMe.md 中实际记录的操作路径如何完成首次 Gradle 配置、下载大型依赖、调用dist/install/compilerTest等任务以及首次构建时依赖校验失败的处理方式。构建环境需要准备什么Kotlin 仓库通过 Gradle 构建Unix/macOS 下统一使用仓库根目录的./gradlewWindows 下使用gradlew。关于 JDK仓库使用 Gradle toolchains 特性从 Eclipse Adoptium 项目自动选择并下载所需的 JDK这是默认路径通常不需要你手动装 JDK如果你只想用自己环境里的 JDK可以通过环境变量提供支持的环境变量名列表见 gradle.propertiesorg.gradle.java.installations.fromEnv如JDK_1_8、JDK_11_0、JDK_17_0、JDK_21_0等。要让 Gradle 只用环境变量提供的 JDK、禁用自动探测需要传-Porg.gradle.java.installations.auto-detectfalse或把该参数写进$GRADLE_USER_HOME/gradle.properties。Windows 上可能还需要为仓库开启长路径支持git config core.longpaths true另外首次运行./gradlew时Gradle wrapper 会先下载并校验 Gradle 发行版当前固定为 Gradle 9.7.1见 gradle/wrapper/gradle-wrapper.properties。执行首次构建在仓库根目录运行# Unix/macOS ./gradlew tasks-and-options # Windows gradlew tasks-and-optionstasks-and-options替换成下文「主要 Gradle 任务」中的具体任务名例如./gradlew dist。首次项目配置时Gradle 会下载并准备两个体积很大的依赖intellij-core命令行编译器的一部分只包含必需的 APIidea-full完整的 IntelliJ IDEA Community Edition供插件模块使用。依赖很大网络不好时首次运行可能超时。README 给出的处理方式是首次运行加上更长的超时参数./gradlew -Dhttp.socketTimeout60000 -Dhttp.connectionTimeout60000运行主要 Gradle 任务ReadMe.md 列出的重要任务如下都从仓库根目录用./gradlew执行任务作用clean清理构建结果dist把编译器发行版打包到dist/kotlinc/目录install构建并把所有公开构件安装到本地 Maven 仓库coreLibsTest构建并运行 stdlib、reflect、kotlin-test 的测试gradlePluginTest构建并运行 Gradle 插件测试compilerTest构建并运行全部编译器测试所以验证「首次构建成功」的主路径是# 1. 打包编译器发行版成功后检查 dist/kotlinc/ 目录 ./gradlew dist # 2. 需要跑测试时按耗时自行选择范围 ./gradlew coreLibsTest ./gradlew compilerTest两个补充说明均来自 README要复现 TeamCity 的构建行为加-Pteamcitytrue标志本地构建默认不跑 proguard且禁用 jar 压缩。部分构件主要是 Maven 插件相关是单独用 Maven 构建的属于可选路径细节见 libraries/ReadMe.md。如果只关心编译器发行版dist完成后dist/kotlinc/下就是可用的编译器发行版目录这是构建成功的直接产物。首次构建的常见失败依赖校验错误仓库对全部 Gradle 构建启用了依赖校验dependency verificationGradle 会校验所用依赖的 md5 和 sha256 哈希当本地构件缺失、或哈希与 gradle/verification-metadata.xml 中登记的不一致时构建会以Dependency verification failed失败。README 给出的处理步骤可先删除verification-metadata.xml的components段避免堆积旧的无用依赖记录README 给出了 macOS 与 Linux/Git for Windows 两条sed命令用 Gradle 重新生成依赖校验元数据./gradlew --write-verification-metadata sha256 -Pkotlin.native.enabledtrue resolveDependencies其中resolveDependencies任务会解析所有平台包括插件下载的依赖-Pkotlin.native.enabledtrue用于把 native 依赖也纳入元数据。README 同时提醒如果项目目录里有local.properties且其中写了kotlin.native.enabledfalse它的优先级高于命令行参数会导致 native 依赖被漏掉。另外可以直接运行 scripts/update-verification-metadata.sh 脚本它包含上述两步操作。可选分支构建 Kotlin/Native 或复现发行版这两条路径不属于「本地跑一次编译器构建」的必经步骤仅在对应目标下使用Kotlin/Native按 kotlin-native/README.md先在仓库根目录创建local.properties并写入kotlin.native.enabledtrue然后在仓库根目录运行./gradlew :kotlin-native:dist只构建 host target 的编译器与 stdlib产物在./dist目录Linux 要求 glibc 2.23 或更新macOS 要求 Xcode 26.4 或更新。复现某个正式发布版的可复现构建docs/building/index.md 描述的是 1.9.0-Beta 及以后版本在 Docker 容器registry.jetbrains.team提供的构建镜像里执行./scripts/build-kotlin-compiler.sh的流程需要 Linux/macOS、Docker、14 GB 内存等前置条件目的是验证产物 SHA 256 与已发布kotlin-compiler.zip一致与本地开发构建是不同的任务。构建完成后要继续参与开发可参考 docs/contributing.md 中关于提交补丁和 commit 消息规范的说明在 IntelliJ IDEA 中打开该仓库做日常开发时README 建议使用最新发布的 IntelliJ IDEACommunity 或 Ultimate并直接以项目目录导入。再次强调边界dist的产物位置dist/kotlinc/、各测试任务名、依赖校验行为均来自仓库 README 与 gradle.properties如果升级了仓库版本任务名与配置可能变化以对应版本的 ReadMe.md 为准。【免费下载链接】kotlinThe Kotlin Programming Language.项目地址: https://gitcode.com/GitHub_Trending/ko/kotlin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考