本文档提供了从源代码构建Kotlin项目并为其开发做出贡献的全面说明。它涵盖了构建系统架构、环境设置、构建命令、测试过程和贡献工作流。
有关Kotlin编译器架构的信息,请参阅架构概述。
Kotlin使用基于Gradle的构建系统,并通过大量定制来支持编译器、标准库和插件的构建。该项目由数百个模块组成,分为功能组。
来源
来源
在构建 Kotlin 之前,您需要使用必要的工具和配置来设置您的环境。
构建系统期望通过环境变量提供 JDK 安装
JDK_1_8 - JDK 8
JDK_11_0 - JDK 11
JDK_17_0 - JDK 17
这些变量应指向相应 JDK 安装的根目录。
来源
在项目根目录下创建一个 local.properties 文件来自定义您的构建
来源
来源
dist 任务| 属性 | 描述 | 默认 |
|---|---|---|
kotlin.build.useFir | 为项目使用 FIR 编译器 | false |
kotlin.build.useFirForLibraries | 对 stdlib、reflect、test 使用 FIR | false |
kotlin.build.disable.werror | 禁用 -Werror 编译器标志 | false |
kotlin.native.enabled | 启用 Kotlin/Native 模块 | false |
bootstrap.local | 使用本地构建的编译器 | false |
jpsBuild | 启用 JPS 构建 | false |
在 gradle.properties、local.properties 中设置这些属性,或作为命令行参数
来源
Kotlin 使用引导机制来构建自身。构建系统使用指定版本的 Kotlin 编译器来编译代码库。
来源
Kotlin 拥有一个广泛的测试套件,在提交更改前应运行它。
来源
Kotlin Gradle 插件测试按平台和功能进行组织。
来源
来源
您的代码应遵循 Kotlin 的编码约定并通过代码一致性测试。
主要要求
.canonicalPath 或 .canonicalFile (使用相对路径)来源
| 问题 | 解决方案 |
|---|---|
| 内存不足 | 在 gradle.properties 中使用 org.gradle.jvmargs=-Xmx4g 增加 Gradle 堆大小 |
| 缺少依赖项 | 检查网络和代理设置,验证依赖项校验和。 |
| 测试失败 | 运行特定测试以隔离问题:./gradlew :module:test --tests TestClassName |
| 缺少 JDK | 配置所需的 JDK 安装和环境变量。 |
Kotlin 使用 Gradle 的依赖项验证来确保依赖项的完整性。如果您遇到校验和验证失败,可能需要更新验证元数据。
来源
为了提高构建性能
org.gradle.parallel=trueorg.gradle.configuration-cache=trueorg.gradle.daemon=trueorg.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g来源
Kotlin Gradle 插件是一个复杂的组件,包含多个子插件。
来源
构建和贡献 Kotlin 需要了解其复杂的构建系统和架构。本指南提供了开始所需的基础信息,但该系统非常庞大,您可能会遇到未在此涵盖的特定问题。在这种情况下,请参考项目的代码库并联系社区寻求帮助。
来源