菜单

Kotlin Gradle 插件

相关源文件

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 属性和系统属性读取值。

来源

诊断系统

该插件包含一个全面的诊断系统,用于报告问题并提供指导。

来源

平台支持

JVM 支持

Kotlin Gradle 插件为 Kotlin/JVM 项目提供了全面的支持

  • 将 Kotlin 编译为 JVM 字节码
  • 与 Java 源集成
  • 支持增量编译
  • 提供 Java-Kotlin 互操作性
  • 启用特定于 JVM 的编译器选项

JavaScript 支持

对于 JavaScript 目标,该插件提供

  • 编译到 JavaScript
  • 浏览器和 Node.js 目标
  • JS 的增量编译
  • DCE (Dead Code Elimination) 优化
  • 与 JS 构建工具集成

原生支持

对于 Kotlin/Native 目标,该插件支持

来源

Android 支持

该插件与 Android Gradle 插件集成,提供

  • Android 项目的 Kotlin 编译
  • Android 特定的源集
  • Kotlin-Android 互操作性
  • Android 库和应用程序支持

多平台项目

Kotlin 多平台项目允许在多个平台之间共享代码。Kotlin Gradle 插件为多平台开发提供了广泛的支持

来源

源集层级结构

多平台项目使用层级化的源集结构

  • 通用源集包含跨所有平台共享的代码
  • 中间源集在相关平台之间共享代码
  • 特定平台源集包含特定平台代码

依赖项

多平台项目中的依赖项可以在不同级别声明

来源

配置与自定义

属性

Kotlin Gradle 插件可以使用各种属性进行配置,这些属性可以在 gradle.properties 文件中或作为系统属性进行设置。

属性描述默认值
kotlin.incremental为 JVM 启用增量编译true
kotlin.incremental.js为 JS 启用增量编译特定于平台
kotlin.incremental.native为 Native 启用增量编译false
kotlin.daemon.jvmargsKotlin 守护进程的 JVM 参数-
kotlin.compiler.execution.strategy编译器执行策略 (DAEMON, IN_PROCESS, OUT_OF_PROCESS)DAEMON
kotlin.mpp.enableResourcesPublication启用 MPP 中的资源发布true
kotlin.native.cacheKindNative 编译的缓存策略NONE
kotlin.native.enableKlibsCrossCompilation启用 KLibs 跨平台编译特定于平台

来源

编译任务配置

Kotlin 编译任务可以使用以下模式进行配置

来源

与其他系统集成

Android 集成

Kotlin Gradle 插件通过以下方式与 Android Gradle 插件集成

来源

IDE 集成

该插件还提供了与 IDE 的集成,特别是通过以下方式与 IntelliJ IDEA 集成

  • Kotlin 工具模型
  • IDE 元数据
  • 源码集解析
  • 库依赖解析
  • IDE 的任务配置

来源

测试与验证

Kotlin Gradle 插件附带了广泛的测试基础架构,以确保其功能

来源

测试基础架构包括

  • 不同 Gradle 版本的集成测试
  • 不同 Kotlin/Native 目标的测试
  • Android 集成测试
  • 多平台项目测试
  • 配置缓存测试
  • 构建性能测试

故障排除和诊断

该插件提供了多种故障排除机制

构建报告

Kotlin Gradle 插件可以生成包含构建过程详细信息的构建报告

来源

诊断消息

该插件使用结构化的诊断系统来提供有用的错误消息和警告

  • 错误:指示阻止成功构建的问题
  • 警告:指示不阻塞构建的潜在问题
  • 信息:提供其他信息
  • 致命:指示需要立即关注的关键问题

来源

高级特性

原生二进制文件

该插件支持各种原生二进制文件类型

  • 可执行文件:独立应用程序
  • 框架:用于 iOS/macOS 集成
  • 静态库:用于静态链接
  • 动态库:用于动态链接
  • 测试可执行文件:用于运行测试

来源

Swift 导出

对于 Apple 平台,该插件提供了 Swift 导出功能,以改善 Kotlin-Swift 互操作性

来源

Xcode 集成

该插件提供了与 Xcode 的集成,用于 Apple 平台开发

  • 框架生成
  • 框架嵌入
  • 调试符号管理
  • Swift 导出集成

来源

构建配置缓存

该插件支持 Gradle 的配置缓存以提高构建性能

  • 所有核心任务的配置缓存兼容性
  • 可序列化的任务输入/输出
  • 配置时优化

来源