使用Kotlin代替Groovy編寫Gradle

有沒有小老弟學完Kotlin還想學Groovy?其實Gradle從4.1開始就支持Kotlin語言啦!學完Kotlin不僅可以代替Java語言開發(fā)Android,還可以順便代替Groovy編寫Gradle文件哦!一種語言就能玩轉(zhuǎn)Android,懶人必備技術(shù)!

(注:還不會Kotlin的小老弟先去學一下Kotlin)那么廢話不多說,下面開始開車,請坐穩(wěn)。。。

一、創(chuàng)建一Gradle工程(這邊我們直接用Idea,as的爸爸)

        直接New一個Gradle的工程就可以了,非常簡單。

二、Gradle版本配置(4.1及以上)

       在工程目錄找到gradle文件夾,里面有一個gradle-wrapper.properties
image
    打開文件,內(nèi)容like this,'#'開頭的是注釋,Url是gradle的地址,如果沒有下載過會自動下載,如果要手動下載改成
    ''file:///'' 開頭配上本地Gradle路徑即可,把gradle版本改到4.1或者以上,這邊是4.10.3
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip
#distributionUrl=file:///c:/...
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
三、更改gradle文件類型
      修改gradle.build->gradle.build.kts,然后刪除里面原來的內(nèi)容,為了防止IDE出錯,建議重啟一下軟件
image.png
四、重頭戲:正式寫代碼

    1、寫一個任務(Task)
     其中最外面的代碼塊會在掃描時就運行了,有點像java的static代碼塊,然后doFirst和doLast代碼塊會
     在Task運行的時候調(diào)用,doFirst在doLast之前。
task("myTask", {
    //掃描時運行
    println("scan")

    //調(diào)用時運行
    doFirst {
        println("myTask")
    }
    doLast{
        
    }
})
    2、運行任務
    IDE的右側(cè)打開Gradle選項,找到Tasks->other->myTask,雙擊即可手動運行
image.png
    3、任務依賴
    如下代碼,myTask2運行的時候會首先運行myTask任務,再運行自己。
task("myTask2", {
    //掃描時運行
    println("scan")

    //調(diào)用時運行
    doLast {
        println("two")
    }
    doFirst {
        println("one")
    }

}).dependsOn("myTask")
    3、默認任務查看和配置
     如下任務可以打印出Gradle工程的默認任務,工程運行的時候會自動運行默認任務,如果想把自己的任     
     務添加到默認任務,直接用defaultTasks方法就可以,如下所示。
task("kown_default_task", {
    project.properties.forEach { t, any ->
        println("$t:$any")
    }
})

//默認執(zhí)行任務配置
defaultTasks("myTask")
    4、自定義插件拓展
    想偷懶,可以直接使用插件輔助完成一些任務,如下自定義插件拓展任務,分別可以刪除文件,拷貝文件,打包成Jar
task("myDelete",Delete::class,{
    //setDelete("src/main/java/temp")
})
task("myCopy",Copy::class,{
    from("src")
    into("haha")
})
task("myJar",Jar::class,{
    from("src")
    into("a.jar")
})
    4、調(diào)用外部拓展
     沒有內(nèi)部拓展,想用外面拓展代碼?沒有問題。。。如下Main為Main.class的java代碼,classpath配置類文件的路徑,"."為根目錄,就是工程的根目錄,具體目錄可以自己隨便設置。
//調(diào)用外部拓展
task("useOutsideCode",{
    doFirst({
        javaexec{
            main = "Main"
            classpath(".")
        }
    })

})
    5、配置插件
    配上application插件,然后在application里面配上主類就可以運行,大家直接把gradle.build.kts清空然后
    寫上下面幾句就可以直接run程序啦,是不是非常簡單快速?(當然如果有小老弟MainKt文件都沒有創(chuàng)建
    就想運行,那是不可能的,還跑步起來就重裝系統(tǒng)吧,哈哈)
//application插件
//java插件
//war插件
plugins{
    application
    `kotlin-dsl`
}

application {
    mainClassName = "MainKt"
}
    6、配置倉庫
repositories{
    mavenCentral()
    jcenter()
}
    7、配置依賴
dependencies{
    compile(kotlin("stdlib"))
    //依賴管理
    //gradle會自動下載三方的依賴包
    compile("commons-httpclient","commons-httpclient","3.1")
    //編譯時依賴 compile
    //測試時依賴 testCompile
    testCompile("junit","junit","4.8.1")
}
    8、解決依賴沖突
    Gradle會自動依賴更高版本的包,如果想手動依賴低版本的包,可以用exclude方法移除三方依賴,如下:
dependencies{
    compile(kotlin("stdlib"))
    //依賴管理
    //gradle會自動下載三方的依賴包
    compile("commons-httpclient","commons-httpclient","3.1")
    //解決依賴沖突
    //1、Gradle自動依賴高版本 commons-logging->1.2
    //2、手動解除依賴
    compile("org.springframework","spring-core","4.3.9.RELEASE"){
        exclude("commons-logging","commons-logging")
    }

}
五、我的GradleKotlin Demo鏈接
https://github.com/ChangerD/Kotlin-Gradle.git

到這大家應該極大概率成為各公司的Kotlin-Gradle編程的第一人,應該基本已經(jīng)了解怎么用Kotlin開發(fā)Gradle工程了,關(guān)于Android工程的Gradle改造,我會在下一次更新文章,我想聰明的小伙伴們已經(jīng)Get到技能了,自己改一個Android工程的Gradle也不再話下,換湯不換藥。Good bye!
(第一次寫文章,各位大佬級別的發(fā)現(xiàn)問題,還請指教)

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容