本文是 Gradle 官网文章 Kotlin Meets Gradle 的译文。 原文发布于 2016-05-18,所以文中的时间都要再往前算一年。 如今 Kotlin 已经发布了 1.1,Gradle 已经发布了 3.5,Gradle Script Kotlin 也已经发布了 0.9.1,相对当时都更完善了很多。
很多读者会对 JetBrains 的优秀编程语言 Kotlin 比较熟悉。 自 2010 年以来一直在开发中,在 2012 首次公开发布,并在今年年初发布了 1.0 GA。
这些年来我们一直在关注 Kotlin,并且对语言所提供的功能及其强大的吸引力(尤其对安卓社区)的印象愈加深刻。
去年年底,Hans 与 JetBrains 团队的几个成员一起坐下来想:一个基于 Kotlin 来写 Gradle 构建脚本及插件的方式可能会是什么样的? 它对团队的帮助如何——尤其是大型团队——加快工作速度并编写结构更好、更易于维护的构建?
这些可能性非常诱人。
因为 Kotlin 是一种静态类型语言,在 IDEA 和 Eclipse 中都有深入的支持,所以可以从自动补全到重构以及其间的一切都能为 Gradle 用户提供适当的 IDE 支持。 而且由于 Kotlin 具有丰富的功能,如一等函数和扩展方法,因此它可以保留和改进 Gradle 构建脚本的最佳部分——包括简明的声明式语法以及轻松制作 DSL 的能力。
所以我们认真地考察了这些可能性,在过去的几个月里,我们很高兴与 Kotlin 团队密切合作,为 Gradle 开发一种新的基于 Kotlin 的构建语言。
我们称之为 Gradle Script Kotlin,并且在旧金山的 JetBrains 的 Kotlin 之夜活动中,Hans 刚刚在舞台上发布了第一个演示版。 我们今天发布了这个作品向 1.0 发展的第一个预览版本,并在 github.com/gradle/gradle-script-kotlin 上开源了它的版本库。
那么它是什么样的,而你能用它做什么呢?乍一看,它看起来与你今天所知道的 Gradle 构建脚本并没有 多大 不同。
但是,当你在 IDE 中开始探索各种可能性时,事情会变得非常有趣。 你会发现,突然间你以往期望的东西在 IDE 中 可用了,包括:
- 自动补全和内容辅助
- 快速文档
- 跳转到源代码
- 重构等等
效果是戏剧性的,并且我们认为这会对 Gradle 用户产生很大的影响。 关于这点,现在你可能对几件事情有疑问——如现有的 Gradle 插件是否可以与 Gradle Script Kotlin 一起使用(是的,可以),以及是否已经弃用了 Groovy 编写构建脚本(不,并不是)。 你可以在项目常见问题中找到这些问题以及其他问题的完整答案。 如果你有一个没有答案的问题,请告诉我们。
当然,这还只是开始。 我们很高兴地宣布,会在 Gradle 3.0 中提供 Kotlin 脚本支持,我们也会很快发布关于我们路线图的更多信息。 在此期间,也无需等待——你现在可以通过我们的入门样例来亲自试用 Gradle Script Kotlin。
并且我们希望你这么做,因为我们乐于收到你的反馈。 我们很乐于听到你的想法,以及你有多期待这项新工作的进展。 你可以通过项目的 GitHub Issues 提出问题,并请在公共的 Kotlin Slack 的 #gradle 频道中与我们聊天。
我非常感谢我的同事 Rodrigo B.de Oliveira 最近几个月在这个项目上合作——有很多乐趣! 还要非常感谢 Kotlin 团队,尤其是 Ilya Chernikov 和 Ilya Ryzhenkov,积极响应我们对 Kotlin 编译器以及 Kotlin IDEA 插件的每个需求。 继续加油!
相关推荐
当IDEA遇见Kotlin,两者结合的插件Kotlin,无疑是开发者提高生产力的得力助手。本文将详细探讨IDEA中的Kotlin插件及其功能。 首先,我们需要明白IDEA插件Kotlin的作用。这个插件是JetBrains公司专门为IntelliJ IDEA...
Android应用源码通常遵循特定的目录结构,包括`app/src/main/java`(Java或Kotlin代码)、`app/src/main/res`(资源文件)、`app/build.gradle`(构建配置)等。在这个“遇见”应用中,我们可以看到应用如何组织它...
10. **Adapters**: 当应用需要将数据与视图绑定时,Adapter类起着桥梁作用,例如ListView和RecyclerView中的适配器。 通过分析源码,我们可以学习到以下知识点: - **Android架构组件**:如ViewModel、LiveData、...
而Android Studio的Gradle构建系统也是开发者需要掌握的一部分,包括模块化构建、依赖管理以及自定义构建脚本等。 最后,源码中可能还包含了测试代码,如JUnit、Espresso或Mockito等,这有助于我们学习如何进行单元...
4. **build.gradle**:定义了项目的构建设置,包括依赖库、版本控制和编译选项。 在"遇见"的源码中,我们可以看到以下可能涉及的关键知识点: 1. **Activity和Fragment的生命周期**:Android应用中的用户界面通常...
1. **Android应用程序结构**:一个标准的Android应用源码通常包括`AndroidManifest.xml`(应用配置文件),`src`目录(包含Java或Kotlin源代码),`res`目录(资源文件如布局、图标和字符串),以及`build.gradle`...
在绿豆通讯录应用中,开发者会在`app`模块下找到`src/main/java`目录,这里存放着应用的Java或Kotlin源代码,其中包括Activity(应用程序的主界面)、Adapter(用于绑定数据到UI组件)、Model(数据模型)和DAO...
2. `android/` - Android项目的源代码,包含`build.gradle`文件,`src/main/`目录下的Java或Kotlin代码,以及AndroidManifest.xml等。 3. `example/` - 示例应用目录,用于展示如何在Flutter应用中使用这个插件。 4....
1. **Android Studio**:作为开发工具,Android Studio提供了丰富的功能,如布局编辑器、Gradle构建系统、实时预览和分析工具等。开发者需要熟悉其工作流,包括创建新项目、编写代码、调试、打包和发布应用。 2. **...