菜单

构建与贡献

相关源文件

本文档提供了从源代码构建Kotlin项目并为其开发做出贡献的全面说明。它涵盖了构建系统架构、环境设置、构建命令、测试过程和贡献工作流。

有关Kotlin编译器架构的信息,请参阅架构概述

构建系统概述

Kotlin使用基于Gradle的构建系统,并通过大量定制来支持编译器、标准库和插件的构建。该项目由数百个模块组成,分为功能组。

项目结构图

来源

构建系统架构

来源

设置构建环境

在构建 Kotlin 之前,您需要使用必要的工具和配置来设置您的环境。

所需工具

  • JDK:需要多个版本(8、11、17)用于不同的组件
  • Git:用于版本控制
  • Gradle:构建工具(包装器包含在仓库中)
  • IDE:建议使用 IntelliJ IDEA

JDK 配置

构建系统期望通过环境变量提供 JDK 安装

JDK_1_8  - JDK 8
JDK_11_0 - JDK 11
JDK_17_0 - JDK 17

这些变量应指向相应 JDK 安装的根目录。

来源

本地配置

在项目根目录下创建一个 local.properties 文件来自定义您的构建

来源

构建 Kotlin 项目

基础构建命令

构建特定组件

来源

构建自定义选项

属性描述默认
kotlin.build.useFir为项目使用 FIR 编译器false
kotlin.build.useFirForLibraries对 stdlib、reflect、test 使用 FIRfalse
kotlin.build.disable.werror禁用 -Werror 编译器标志false
kotlin.native.enabled启用 Kotlin/Native 模块false
bootstrap.local使用本地构建的编译器false
jpsBuild启用 JPS 构建false

gradle.propertieslocal.properties 中设置这些属性,或作为命令行参数

来源

引导机制

Kotlin 使用引导机制来构建自身。构建系统使用指定版本的 Kotlin 编译器来编译代码库。

来源

测试代码库

Kotlin 拥有一个广泛的测试套件,在提交更改前应运行它。

运行测试

来源

Gradle 插件测试

Kotlin Gradle 插件测试按平台和功能进行组织。

来源

测试架构

来源

贡献 Kotlin

贡献工作流程

代码风格和一致性

您的代码应遵循 Kotlin 的编码约定并通过代码一致性测试。

主要要求

  • 不要使用 .canonicalPath.canonicalFile (使用相对路径)
  • 正确的版权头部
  • 正确的代码格式
  • 未使用禁止的 API

来源

构建问题故障排除

常见的构建问题

问题解决方案
内存不足gradle.properties 中使用 org.gradle.jvmargs=-Xmx4g 增加 Gradle 堆大小
缺少依赖项检查网络和代理设置,验证依赖项校验和。
测试失败运行特定测试以隔离问题:./gradlew :module:test --tests TestClassName
缺少 JDK配置所需的 JDK 安装和环境变量。

依赖项验证

Kotlin 使用 Gradle 的依赖项验证来确保依赖项的完整性。如果您遇到校验和验证失败,可能需要更新验证元数据。

来源

性能优化

为了提高构建性能

  1. 启用并行执行(默认):org.gradle.parallel=true
  2. 使用配置缓存(默认):org.gradle.configuration-cache=true
  3. 启用 Gradle 守护进程(默认):org.gradle.daemon=true
  4. 增加内存:org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g

来源

处理特定组件

处理 Gradle 插件

Kotlin Gradle 插件是一个复杂的组件,包含多个子插件。

来源

结论

构建和贡献 Kotlin 需要了解其复杂的构建系统和架构。本指南提供了开始所需的基础信息,但该系统非常庞大,您可能会遇到未在此涵盖的特定问题。在这种情况下,请参考项目的代码库并联系社区寻求帮助。

来源