Kotlin
A concise multiplatform language developed by JetBrains
Kotlin DSL 现在成为新 Gradle 构建的默认设置
我们始终致力于帮助开发者编写结构更好、更易维护的构建。 基于这个目标,将 Kotlin 应用于编写 Gradle 构建脚本和插件也就水到渠成。 Kotlin 提供了许多强大的功能,是创建 DSL 的绝佳选择,同时也可以显著提升开发者体验。
自从 Kotlin 首次被引入 Gradle 以来,我们完成了许多工作,旨在让 Gradle 用户的体验更为流畅愉快。 今天,我们很高兴分享一个重要消息:Gradle 宣布将 Kotlin DSL 选为新 Gradle 构建的默认设置! 从现在开始,它将成为插件和文档中的默认选项。 得益于丰富的功能,例如一流的函数和扩展方法,Kotlin 可以维护甚至改进创建 Gradle 脚本的最佳元素。
“感谢 JetBrains、Google 和 Gradle 之间的共同努力,Kotlin DSL 已经达到了更成熟的水平,成为开发者可在项目中使用的更高效、更人性化的工具。” ~ Gradle 团队
此外,Google 发表声明,表示将 Kotlin DSL 作为 Android 应用 Gradle 构建文件的默认脚本。
Google、Gradle 和 JetBrains 将继续紧密合作,维持统一的代码样式和定义的习语,帮助我们提高代码质量。
在这篇文章中,我们想分享 Kotlin DSL 在编写 Gradle 脚本方面的一些关键优势,以及 IDE 对 build.gradle.kts 文件的支持的现有功能。
Kotlin DSL 相较于 Groovy 的优势
不同开发者可能出于不同的原因选择一种语言而非另一种语言。 在下面的部分中,我们将重点介绍 Kotlin 的关键优势,说明 Kotlin DSL 为什么是编写 Gradle 构建脚本和插件的更好选择。
如果您还不确定是否要将 Android 的 Gradle 构建文件从 Groovy 转换为 Kotlin,下面是使用 Kotlin 的 4 个主要优势。
- 编译时检查
这两种语言之间的一个重要区别是,Groovy 是一种动态语言,而 Kotlin 是静态类型。 这表示,使用 Kotlin DSL 时,构建脚本错误可能发生在编译时而不是运行时。
使用动态类型检查,在执行构建脚本之前不会检测到错误。 但是,通过编译时错误,您有机会更早地修正问题。 另外,当您在 IDE 中工作时,编辑器可以高亮显示错误。 例如,引用配置名称 `applications` 而不是 `application` 时,您会看到这种情况。
2. 更好的 IDE 体验
有了更多关于代码的语义信息,您可以充分利用 IDE 的功能,包括:
- 自动补全和内容辅助
- 源代码导航
- 重构
目前为止,IntelliJ IDEA 和 Android Studio 为 Kotlin 提供了集成度最高的体验。 但是,您也可以在其他 IDE 中导入和使用基于 Kotlin-DSL 的构建。 在 Gradle 文档中,您可以查看 Kotlin DSL 的 IDE 支持矩阵。
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 的迁移教程。 Android 开发者可以查看将 Android 应用的 Gradle 构建文件从 Groovy 转换为 KTS 的详尽指南。
Gradle 仍将保留对 Groovy DSL 的支持。 对于使用 Groovy DSL 的具有复杂构建逻辑的大型项目,Gradle 建议暂时不要迁移。 不过,在 Kotlin 成为 Gradle 的默认 DSL 选择后,我们相信 Kotlin DSL 将极大地帮助希望在编写和编辑构建脚本时提升体验的 Gradle 用户。
同样,JetBrains 团队还将致力于进一步增强我们的技术,为用户提供功能丰富的工具来开发高效应用程序。
本博文英文原作者: