使用Kotlin編寫Gradle腳本

說明

Android應用開發(fā)中,離不開Gradle腳本的構建,它的重要性不言而喻,它是使用一種基于Groovy的特定領域語言(DSL)來聲明項目設置,拋棄了基于XML的各種繁瑣配置。很多人可能知道Gradle腳本使用Groovy語言來編寫,但是可能并不會Groovy語言,只是記住固定的配置,比如:我們要依賴三方庫,只需要這樣配置即可:implementation 'androidx.appcompat:appcompat:1.0.2'。

不懂Groovy語言不影響正常的使用,但是有時候我們想通過Gradle腳本來實現(xiàn)一些特殊的功能,比如:打包后自動上傳到蒲公英,方便測試團隊測試,以及使用Gradle來記錄每個版本的更新信息并上傳到服務器等等,這時候需要我們自己來實現(xiàn)了,這就需要我們了解Groovy語言。當然因為Groovy語言它是對Java代碼進行了擴展,我們完全可以使用Java代碼來編寫,但是語法就顯得有些啰嗦。而學習Groovy語言是需要一定成本的,并且在Android Studio是沒有語法提示的。

Kotlin Meets Gradle

Gradle團隊為Gradle開發(fā)了一種新的基于Kotlin的構建語言,稱之為Gradle Script Kotlin,從Gradle 3.0開始支持。也就是說我們可以使用Kotlin來編寫Gradle腳本了,當使用Kotlin來編寫Gradle腳本的時候一切都變得美好了:

  • 腳本代碼可以自動補全了
  • 源碼之間可以互相跳轉了
  • 插件源碼更容易看懂了
  • 支持重構了

官方說明

使用Kotlin編寫Gradle

下面我們就用kotlin來改造項目中的Gradle腳本。Gradle Script Kotlin腳本以.gradle.kts后綴結尾。所以,我們需要將工程根目錄gradle文件更名.gradle.kts。

1.更改settings.gradle

將工程根目錄settings.gradle更名為settings.gradle.kts


更改后文件報錯了,我們需要改成Kotlin語法,這里就是一個方法調用。修改后如下所示:

可以看到,參數(shù)含義自動提示了。

2.更改根目錄下的build.gradle

同理,先修改擴展名,再改成Kotlin語法,修改后的文件如下所示:

由于我們修改了build.gradle的文件名,為了保證工程可以使用這個腳本,需要在settings.gradle.kts中添加一行代碼,讓Gradle知道使用build.gradle.kts腳本構建。

include(":app")
rootProject.buildFileName = "build.gradle.kts"

3.修改app模塊中的build.gradle

操作跟上面的步驟一樣,修改后的文件內容如下所示:

從上面的示例中我們可以看到修改成gradle.kts后,語法有了提示,并且點擊可以直接跳轉到源碼。并且更加容易理解每一步的配置。

使用Gradle Script Kotlin后,我們可以用Kotlin來開發(fā)插件或者編寫腳本,如果開發(fā)插件,可以改成下面的寫法了:

class MyPlugin : Plugin<Project> {

    override fun apply(project: Project) {
        project.run {
            tasks {
                register("myCopyTask", Copy::class) {
                    group = "sample"
                    from("build.gradle.kts")
                    into("build/copy")
                }
            }
        }
    }
}

有沒有感覺很親切。更多示例請查看官方Demo。

Kotlin實戰(zhàn)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容