[老實李] Gradle學習筆記-使用kotlin編寫gradle指令碼

b10l07發表於2017-09-12

1、到官網下載安裝,配置環境變數
https://gradle.org/
點選Binary-only,下載壓縮包,解壓並配置環境變數(bin目錄)

3804905-190f56de45ba7a91.png
Image.png

在cmd測試gradle是否配置成功

3804905-dcb8ff34225d1323.png
Image.png

2、入門演示
建立新工程

3804905-3aa3799755e43d5b.png
Image.png

(1)修改gradle -> wrapper -> gradle-wrapper.properties
修改 distributionUrl為本地的gradle壓縮包地址
( 2 )修改build.gradle的檔名為build.gradle.kts
這樣就可以使用kotlin來編寫gradle指令碼了。
(3)重啟IDE 為了防止出現一些問題 ok,工程配置完成,接下來我們在build.gradle.kts中寫點東西

plugins{
    application  //使用構建工具,這個構建工具就是一個應用程式的名字
}
application{
    mainClassName = "Main"  //程式主入口
}

Tips:開啟gradle皮膚

3804905-41aef5dacb3973fe.png
Image.png

程式示範,建立一個Main的java類,列印個“Hello gradle”。因為之前已經在build.gradle.kts檔案下寫了mainClassName就是我們建立的Main.java類,點選gradle皮膚上的run方法就會執行Main.java中的main方法,


3804905-a118646136c25205.png
image.png

點選distZip就會在build資料夾下生成一個zip壓縮包。這個壓縮包解壓之後就是一個jar包和一個在windows平臺下執行的.bat檔案,還有一個在Linux系統下執行的檔案。可以再當前資料夾下直接CMD中執行xxx.bat就會列印出“Hello gradle”


3804905-54714291d8703b31.png
image.png

3804905-046cc31a0ce752c3.png
image.png

3804905-ba621bc7e933055d.png
image.png

3804905-53683787d6f62940.png
image.png

3804905-8b69e15d60b09f24.png
image.png

3804905-45fbf8dd01c5bab3.png
image.png

3.Gradle的靈魂:Project 和 Task
概念:
Gradle本身的領域物件主要有Project和Task
Project為Task提供了執行的容器和上下文
Task案例,Task的依賴

3804905-5640979c4be438e9.png
image.png

Task的生命週期
掃描&執行
掃描時就會執行列印操作。(當點選closeDoor task的時候,依次列印出“關冰箱門”,“開冰箱門”,“放入大象”,這顯然是不符合我們定義的dependsOn的,這便是Task的掃描生命週期。)
3804905-2a6b4472d1a2a8a7.png
image.png

要想在Task執行的時候在進行列印操作,那麼就需要使用doFirst函式還包含程式碼內容。(加上dofirst函式,程式碼執行邏輯正常。)


3804905-a286c3d305e3bc8c.png
image.png

Tasks任務集
多個任務的合集就是任務集

tasks{
    "opendoor"{

    }
    "putelephont"{

    }.dependsOn("opendoor")
    "closedoor"{

    }.dependsOn("putelephont")
}

Task的預設屬性

task("println"){
    project.properties.forEach{
        t, any ->
        println("$t:$any")

    }
}

Task預設任務

task("println"){
    project.properties.forEach{
        t, any ->
        println("$t:$any")

    }
}
defaultTasks("println")

//這樣,當在Terminal輸入:gradle  的時候就會預設的輸出任務“println”的內容

4.Gradle增量式更新
一般來說,程式碼發生變化之後進行編譯會將所有的程式碼都給編譯一遍,而Gradle支援的增量式更新就是隻編譯程式碼有改動的部分,大大提高了編譯的效率。

5.Gradle常用外掛

什麼是外掛:外掛是包含一個或多個任務的合集
application外掛:就是編譯出一個程式,可以是kotlin應用程式,也可是java應用程式,我們剛開始做的hello gradle就是用的這個
java外掛:只能編譯出java應用程式
war外掛:war包,放到tomcat中執行的

相關文章