
记得加关注, Kotlin 之路不迷路!
Kotlinlang.org
我们始终致力于帮助开发者编写结构更好、更易维护的构建。基于这个目标,将 Kotlin 应用于编写 Gradle 构建脚本和插件也就水到渠成。Kotlin 提供了许多强大的功能,是创建 DSL 的绝佳选择,同时也可以显著提升开发者体验。
自从 Kotlin 首次被引入 Gradle1 以来,我们完成了许多工作,旨在让 Gradle 用户的体验更为流畅愉快。今天,我们很高兴分享一个重要消息:Gradle 宣布将 Kotlin DSL 选为新 Gradle 构建的默认设置2!从现在开始,它将成为插件和文档中的默认选项。得益于丰富的功能,例如一流的函数和扩展方法,Kotlin 可以维护甚至改进创建 Gradle 脚本的最佳元素。

感谢 JetBrains、Google 和 Gradle 之间的共同努力,Kotlin DSL 已经达到了更成熟的水平,成为开发者可在项目中使用的更高效、更人性化的工具。
Gradle 团队
此外,Google 发表声明,表示将 Kotlin DSL 作为 Android 应用 Gradle 构建文件的默认脚本3。
Google、Gradle 和 JetBrains 将继续紧密合作,维持统一的代码样式和定义的习语,帮助我们提高代码质量。
在这篇文章中,我们想分享 Kotlin DSL 在编写 Gradle 脚本方面的一些关键优势,以及 IDE 对 build.gradle.kts 文件的支持的现有功能。
1. https://blog.jetbrains.com/kotlin/2016/05/gradle-meets-kotlin/
2. https://blog.gradle.org/kotlin-dsl-is-now-the-default-for-new-gradle-builds
3. https://android-developers.googleblog.com/2023/04/kotlin-dsl-is-now-default-for-new-gradle-builds.html

Kotlin DSL
相较于 Groovy 的优势
不同开发者可能出于不同的原因选择一种语言而非另一种语言。在下面的部分中,我们将重点介绍 Kotlin 的关键优势,说明 Kotlin DSL 为什么是编写 Gradle 构建脚本和插件的更好选择。
如果您还不确定是否要将 Android 的 Gradle 构建文件从 Groovy 转换为 Kotlin,下面是使用 Kotlin 的 4 个主要优势。
1. 编译时检查
这两种语言之间的一个重要区别是,Groovy 是一种动态语言,而 Kotlin 是静态类型。这表示,使用 Kotlin DSL 时,构建脚本错误可能发生在编译时而不是运行时。
使用动态类型检查,在执行构建脚本之前不会检测到错误。但是,通过编译时错误,您有机会更早地修正问题。另外,当您在 IDE 中工作时,编辑器可以高亮显示错误。例如,引用配置名称 `applications` 而不是 `application` 时,您会看到这种情况。

2. 更好的 IDE 体验
有了更多关于代码的语义信息,您可以充分利用 IDE 的功能,包括:
自动补全和内容辅助
源代码导航
重构
目前为止,IntelliJ IDEA 和 Android Studio 为 Kotlin 提供了集成度最高的体验。但是,您也可以在其他 IDE 中导入和使用基于 Kotlin-DSL 的构建。在 Gradle 文档中,您可以查看 Kotlin DSL 的 IDE 支持矩阵4。
4. https://docs.gradle.org/current/userguide/kotlin_dsl.html#sec:ide_support
3. 简化的声明式插件语法
Kotlin DSL 的语法能够替代传统 Groovy DSL,并提供与核心 Kotlin 语言相同的优势。我们来对比一下这两种语言。
将 Gradle 插件应用到项目时,只需指定插件 ID。例如,使用 Groovy DSL 指定 `application` 插件时,它将如下所示:

得益于 Kotlin DSL 的简化语法,在 Kotlin 中只需要输入“application”:

如上所述,如果您尝试应用不存在的插件,IDE 将显示语法错误。
4. 不断壮大的 Kotlin 开发者社区
Kotlin 拥有庞大而繁荣的开发者社区,社区成员为语言和库做出贡献并提供 Gradle 插件。
不断壮大的社区为经验丰富的开发者和 Kotlin 新手提供了丰富的信息。其中包括 Kotlin 的官方文档、论坛、博客、社交媒体话题和在线教育课程。
借助大量实用资源,您可以轻松找到问题的解决方案并将技能提升到更高水平。

从 Groovy 迁移到 Kotlin DSL
以上优势和 Kotlin DSL 的强大功能使其成为提高生产力和构建高性能软件的完美选择。如需将现有 Gradle 构建从 Groovy 迁移到 Kotlin DSL,请查看 Gradle 的迁移教程5。
Android 开发者可以查看将 Android 应用的 Gradle 构建文件从 Groovy 转换为 KTS6 的详尽指南。
5. https://docs.gradle.org/current/userguide/migrating_from_groovy_to_kotlin_dsl.html#migrating_groovy_kotlin
6. https://developer.android.com/studio/build/migrate-to-kts
Gradle 仍将保留对 Groovy DSL 的支持。对于使用 Groovy DSL 的具有复杂构建逻辑的大型项目,Gradle 建议暂时不要迁移。不过,在 Kotlin 成为 Gradle 的默认 DSL 选择后,我们相信 Kotlin DSL 将极大地帮助希望在编写和编辑构建脚本时提升体验的 Gradle 用户。
同样,JetBrains 团队还将致力于进一步增强我们的技术,为用户提供功能丰富的工具来开发高效应用程序。
本博文英文原作者:
Kotlin 产品经理
Anton Yalyshev
这就是 Kotlin 编程语言
简洁、跨平台、且有趣!

本文分享自微信公众号 - JetBrains(JetBrainsChina)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。