【譯】當 Kotlin 遇見 Gradle

jywhltj發表於2017-07-14

本文是 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 構建指令碼並沒有 多大 不同。

build.gradle.kts

但是,當你在 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 外掛的每個需求。 繼續加油!

本文也發在我的個人部落格上:https://hltj.me/kotlin/2017/06/13/kotlin-meet-gradle.html

相關文章