Kotlin Gradle 插件 (KGP) 是官方的构建工具集成,可在 Gradle 项目中启用 Kotlin 编译。它作为 Kotlin 编译器和 Gradle 构建系统之间的桥梁,提供配置选项、任务定义以及跨 JVM、JavaScript、Native 和 Android 等多个平台的工具支持。
本文档涵盖了 Kotlin Gradle 插件的架构、关键组件和功能。有关特定编译器功能的信息,请参阅 Kotlin 编译器前端 和 编译器中间件。
Kotlin Gradle 插件旨在与 Gradle 的构建生命周期无缝集成,同时提供 Kotlin 特定的编译功能。它扩展了 Gradle 的基础插件,并为配置 Kotlin 项目提供了 DSL 扩展。
来源
该插件提供多个扩展以根据项目类型配置 Kotlin 项目
来源
该插件提供了多种 Kotlin 编译任务类型
来源
PropertiesProvider 类提供了对影响插件行为的各种配置属性的访问。它从 Gradle 属性和系统属性读取值。
来源
该插件包含一个全面的诊断系统,用于报告问题并提供指导。
来源
Kotlin Gradle 插件为 Kotlin/JVM 项目提供了全面的支持
对于 JavaScript 目标,该插件提供
对于 Kotlin/Native 目标,该插件支持
来源
该插件与 Android Gradle 插件集成,提供
Kotlin 多平台项目允许在多个平台之间共享代码。Kotlin Gradle 插件为多平台开发提供了广泛的支持
来源
多平台项目使用层级化的源集结构
多平台项目中的依赖项可以在不同级别声明
来源
Kotlin Gradle 插件可以使用各种属性进行配置,这些属性可以在 gradle.properties 文件中或作为系统属性进行设置。
| 属性 | 描述 | 默认值 |
|---|---|---|
kotlin.incremental | 为 JVM 启用增量编译 | true |
kotlin.incremental.js | 为 JS 启用增量编译 | 特定于平台 |
kotlin.incremental.native | 为 Native 启用增量编译 | false |
kotlin.daemon.jvmargs | Kotlin 守护进程的 JVM 参数 | - |
kotlin.compiler.execution.strategy | 编译器执行策略 (DAEMON, IN_PROCESS, OUT_OF_PROCESS) | DAEMON |
kotlin.mpp.enableResourcesPublication | 启用 MPP 中的资源发布 | true |
kotlin.native.cacheKind | Native 编译的缓存策略 | NONE |
kotlin.native.enableKlibsCrossCompilation | 启用 KLibs 跨平台编译 | 特定于平台 |
来源
Kotlin 编译任务可以使用以下模式进行配置
来源
Kotlin Gradle 插件通过以下方式与 Android Gradle 插件集成
来源
该插件还提供了与 IDE 的集成,特别是通过以下方式与 IntelliJ IDEA 集成
来源
Kotlin Gradle 插件附带了广泛的测试基础架构,以确保其功能
来源
测试基础架构包括
该插件提供了多种故障排除机制
Kotlin Gradle 插件可以生成包含构建过程详细信息的构建报告
来源
该插件使用结构化的诊断系统来提供有用的错误消息和警告
来源
该插件支持各种原生二进制文件类型
来源
对于 Apple 平台,该插件提供了 Swift 导出功能,以改善 Kotlin-Swift 互操作性
来源
该插件提供了与 Xcode 的集成,用于 Apple 平台开发
来源
该插件支持 Gradle 的配置缓存以提高构建性能
来源