學習 Gradle 增量建置的基礎知識。

在本節中,您將

  • 使用 Gradle 屬性

  • 了解增量建置

  • 探索任務結果標籤

步驟 0. 開始之前

  1. 您在第 1 部分中初始化了您的 Java 應用程式。

  2. 您在第 2 部分中執行了多個任務。

  3. 您在第 3 部分中學習了相依性管理。

  4. 您在第 4 部分中將外掛應用於您的應用程式。

步驟 1. 了解增量建置

重要的是要知道 Gradle 以多種方式最佳化您的建置。其中一種最佳化稱為增量建置

增量建置是一種建置,它避免執行輸入自上次建置以來沒有變更的任務,使得執行此類任務變得不必要。

為了使增量建置能夠運作,任務必須定義其輸入和輸出。在建置時,Gradle 將判斷輸入或輸出是否已變更。如果它們已變更,Gradle 將執行任務。否則,它將跳過執行。

步驟 2. 更新 Gradle 屬性

為了更好地查看增量建置的實際效果,我們將把主控台輸出切換到詳細模式。

在您的應用程式的頂層資料夾 (tutorial) 中,建立一個 gradle.properties 檔案。

$ touch gradle.properties

新增 org.gradle.console=verbose,使檔案內容如下所示

gradle.properties
org.gradle.console=verbose

步驟 3. 分析增量建置

使用 ./gradlew :app:clean :app:build 命令執行 clean 任務,然後執行 build 任務

$ ./gradlew :app:clean :app:build

> Task :app:clean
> Task :app:compileJava
> Task :app:processResources NO-SOURCE
> Task :app:classes
> Task :app:jar
> Task :app:startScripts
> Task :app:distTar
> Task :app:distZip
> Task :app:assemble
> Task :app:compileTestJava
> Task :app:processTestResources NO-SOURCE
> Task :app:testClasses
> Task :app:test
> Task :app:check
> Task :app:build

BUILD SUCCESSFUL in 1s
8 actionable tasks: 8 executed

這裡並不令人意外,Gradle 調用了建置應用程式所需的所有任務。這已成功完成。

再次執行建置以查看增量建置最佳化效果

$ ./gradlew :app:build

> Task :app:compileJava UP-TO-DATE
> Task :app:processResources NO-SOURCE
> Task :app:classes UP-TO-DATE
> Task :app:jar UP-TO-DATE
> Task :app:startScripts UP-TO-DATE
> Task :app:distTar UP-TO-DATE
> Task :app:distZip UP-TO-DATE
> Task :app:assemble UP-TO-DATE
> Task :app:compileTestJava UP-TO-DATE
> Task :app:processTestResources NO-SOURCE
> Task :app:testClasses UP-TO-DATE
> Task :app:test UP-TO-DATE
> Task :app:check UP-TO-DATE
> Task :app:build UP-TO-DATE

BUILD SUCCESSFUL in 409ms
7 actionable tasks: 7 up-to-date

現在大多數任務都具有 UP-TO-DATE 標籤。Gradle 就是這樣告知我們輸入和輸出沒有變更,因此某些任務沒有重新執行。

步驟 4. 了解結果標籤

當詳細模式開啟時,開發人員可以使用四個標籤來查看任務結果

結果標籤 描述

UP-TO-DATE

已執行且未變更的任務(增量建置功能)

SKIPPED

任務被明確阻止執行

FROM-CACHE

任務輸出已從建置快取中先前的建置複製到本機目錄(快取功能)

NO-SOURCE

任務未執行,因為其所需的輸入不可用

如果沒有標籤,則表示該任務是由 Gradle (在本機) 新執行的。

我們將在下一節中查看 FROM-CACHE 標籤。

下一步: 啟用建置快取 >>