Kotlin 与 Gradle

许多读者熟悉 JetBrains 的优秀 Kotlin 编程语言。它自 2010 年开始开发,于 2012 年首次公开发布,并在今年早些时候发布了 1.0 GA 版本。

多年来,我们一直在关注 Kotlin,并对其提供的功能以及它在 Android 社区的广泛采用印象深刻。

去年年底,Hans 与 JetBrains 团队的几位成员坐在一起,他们一起思考:使用 Kotlin 编写 Gradle 构建脚本和插件会是什么样子?它如何帮助团队(尤其是大型团队)更快地工作,并编写结构更好、更易维护的构建?

这些可能性令人着迷。

因为 Kotlin 是一种静态类型语言,在 IDEA 和 Eclipse 中都得到了深度支持,它可以为 Gradle 用户提供从自动完成到重构以及介于两者之间的所有内容的适当 IDE 支持。而且,由于 Kotlin 拥有诸如一等函数和扩展方法之类的丰富功能,它可以保留和改进编写 Gradle 构建脚本的最佳部分,包括简洁的声明性语法以及轻松创建 DSL 的能力。

因此,我们认真研究了这些可能性,在过去几个月里,我们很高兴与 Kotlin 团队密切合作,为 Gradle 开发一种新的基于 Kotlin 的构建语言。

我们称之为 *Gradle Script Kotlin*,Hans 刚刚在 JetBrains 的 Kotlin Night 活动上展示了它的第一个演示 在旧金山。我们已经 发布了第一个预发布版本 今天发布了该作品的 1.0 版,并将其存储库开源到 github.com/gradle/gradle-script-kotlin

那么它看起来像什么,你能用它做什么?乍一看,它看起来与您今天知道的 Gradle 构建脚本 *并不* 太不同。

build.gradle.kts

但是,当您开始探索 IDE 中的可能性时,事情变得非常有趣。您会发现,突然之间,您通常期望从 IDE 中获得的东西 *正常工作*,包括

  • 自动完成和内容辅助
  • 快速文档
  • 导航到源代码
  • 重构等等

效果是戏剧性的,我们认为这对 Gradle 用户来说将是一个巨大的改变。现在,您可能想知道一些事情,例如现有的 Gradle 插件是否适用于 Gradle Script Kotlin(是的,它们会),以及是否不再建议使用 Groovy 编写构建脚本(不,不是)。您可以在 项目常见问题解答 中找到这些问题的完整答案。如果您有任何未在其中解答的问题,请告诉我们。

当然,所有这些都仅仅是开始。我们很高兴地宣布,Kotlin 脚本支持将在 Gradle 3.0 中可用,我们很快将发布有关我们路线图的更多信息。在此期间,无需等待,您可以立即通过 开始使用我们的示例 来试用 Gradle Script Kotlin。

我们希望您会喜欢它,因为我们非常希望收到您的反馈。我们很乐意听取您的想法,以及您希望看到这项新工作如何发展。您可以通过项目的 GitHub Issues 提交问题,并欢迎您在公共 Kotlin Slack 的 #gradle 频道与我们聊天。

我要感谢我的同事 Rodrigo B. de Oliveira 在过去几个月与我一起在这个项目上的合作——这真的很有趣!还要感谢 Kotlin 团队,特别是 Ilya Chernikov 和 Ilya Ryzhenkov,感谢他们在 Kotlin 编译器和 Kotlin IDEA 插件方面对我们的快速响应。继续前进!

讨论