透過開發設定檔案,了解撰寫 Gradle 的基礎知識。

在本節中,您將

  • 了解設定物件

  • 了解設定檔案

  • 了解 Gradle 腳本

步驟 0. 開始前

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

  2. 您已從 第 2 部分 了解 Gradle 組建生命週期。

  3. 您已在 第 3 部分 中新增子專案和個別組建。

步驟 1. Gradle 腳本

組建腳本和設定檔案是程式碼。它們使用 Kotlin 或 Groovy 編寫。

您可以使用 Kotlin DSLGroovy DSLGradle API 來撰寫腳本。

可以在 Gradle 腳本中使用的主要方法包括

  • Gradle API - 例如 Settings API 中的 getRootProject()

  • DSL 中定義的區塊 - 例如 KotlinSettingsScript 中的 plugins{} 區塊

  • 外掛定義的擴充功能 - 例如套用 java 外掛時提供的 implementation()api()

步驟 2. Settings 物件

設定檔是每個 Gradle 建置的進入點。

在初始化階段,Gradle 會在專案根目錄中尋找設定檔。

找到設定檔 settings.gradle(.kts) 時,Gradle 會實例化一個 Settings 物件。

Settings 物件的其中一個用途是讓您宣告所有要包含在建置中的專案。

您可以在設定檔中直接使用 Settings 介面上任何的方法和屬性。

例如

includeBuild("some-build")                         // Delegates to Settings.includeBuild()
reportsDir = findProject("/myInternalProject")     // Delegates to Settings.findProject()
includeBuild('some-build')                         // Delegates to Settings.includeBuild()
reportsDir = findProject('/myInternalProject')     // Delegates to Settings.findProject()

步驟 3. 設定檔

讓我們剖析專案根目錄中的設定檔

settings.gradle.kts
plugins {                                                                   (1)
    id("org.gradle.toolchains.foojay-resolver-convention") version "0.7.0"  (2)
}

rootProject.name = "authoring-tutorial"                                     (3)

include("app")                                                              (4)
include("lib")

includeBuild("gradle/license-plugin")                                       (5)
1 來自 PluginDependenciesSpec APIplugins({})
2 來自 PluginDependenciesSpec APIid() 方法
3 來自 Settings APIgetRootProject() 方法
4 來自 Settings APIinclude() 方法
5 來自 Settings APIincludeBuild() 方法
settings.gradle
plugins {                                                                   (1)
    id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0'   (2)
}

rootProject.name = 'running-tutorial-groovy'                                (3)

include('app')                                                              (4)
include('lib')

includeBuild('gradle/license-plugin')                                       (5)
1 來自 Kotlin DSL 中的 KotlinSettingsScriptplugins({}) 方法
2 來自 PluginDependenciesSpec APIid() 方法
3 來自 Settings APIgetRootProject() 方法
4 來自 Settings APIinclude() 方法
5 來自 Settings APIincludeBuild() 方法

下一步: 撰寫建置指令碼 >>