Gradle

API 文件Gradle

代表 Gradle 的調用。

您可以透過呼叫 Project.getGradle() 來取得 Gradle 實例。

屬性

屬性描述
extensions

擴充功能的容器。

gradle

傳回此 Gradle 實例。此方法在初始化腳本中很有用,可明確存取 Gradle 屬性和方法。例如,使用 gradle.parent 可以比使用 parent 更清楚地表達您的意圖。此屬性也允許您從屬性可能被隱藏的範圍(例如,從方法或閉包)存取 Gradle 屬性。

gradleHomeDir

Gradle 主目錄(如果有的話)。此目錄是包含執行此建置的 Gradle 發行版本的目錄。

gradleUserHomeDir

Gradle 使用者主目錄。此目錄用於快取下載的資源、編譯的建置腳本等等。

gradleVersion

目前的 Gradle 版本。

includedBuilds

此建置的包含建置。

parent

此建置的父建置(如果有的話)。

pluginManager

此外掛感知物件的外掛管理器。

plugins

已套用至此物件的外掛容器。

rootProject

此建置的根專案。

startParameter

用於啟動此建置的 StartParameter

taskGraph

此建置的 TaskExecutionGraph

方法

方法描述
addBuildListener(buildListener)

BuildListener 新增至此 Build 實例。監聽器會收到建置執行期間發生的事件通知。

addListener(listener)

將指定的監聽器新增至此建置。監聽器可以實作任何給定的監聽器介面

addProjectEvaluationListener(listener)

將監聽器新增至此建置,以接收專案評估的通知。

afterProject(closure)

新增一個閉包,以便在專案評估後立即呼叫。專案會作為第一個參數傳遞給閉包。專案評估失敗(如果有的話)會作為第二個參數傳遞。這兩個參數都是選用的。

afterProject(action)

新增一個動作,以便在專案評估後立即呼叫。

allprojects(action)

新增一個動作,以針對此建置的所有專案執行。該動作會立即針對所有已可用的專案執行。它也會在後續專案新增至此建置時執行。

apply(closure)

套用零個或多個外掛或腳本。

apply(options)

使用以 Map 形式提供的指定選項,套用外掛或腳本。如果外掛程式已套用,則不執行任何動作。

apply(action)

套用零個或多個外掛或腳本。

beforeProject(closure)

新增一個閉包,以便在專案評估前立即呼叫。專案會作為參數傳遞給閉包。

beforeProject(action)

新增一個動作,以便在專案評估前立即呼叫。

beforeSettings(closure)

新增一個動作,以便在建置設定載入和評估之前呼叫。

beforeSettings(action)

新增一個動作,以便在建置設定載入和評估之前呼叫。

buildFinished(closure)
已過時

新增一個閉包,以便在建置完成時呼叫。所有選取的 Task 都已執行。BuildResult 實例會作為參數傳遞給閉包。

buildFinished(action)
已過時

新增一個動作,以便在建置完成時呼叫。所有選取的 Task 都已執行。

includedBuild(name)

傳回此建置中具有指定名稱的包含建置。

projectsEvaluated(closure)

新增一個閉包,以便在已評估建置的所有專案時呼叫。專案物件已完全設定,且已準備好用於填入 Task 圖表。此 Gradle 實例會作為參數傳遞給閉包。

projectsEvaluated(action)

新增一個動作,以便在已評估建置的所有專案時呼叫。專案物件已完全設定,且已準備好用於填入 Task 圖表。

projectsLoaded(closure)

新增一個閉包,以便在已從設定建立建置的專案時呼叫。尚未評估任何專案。此 Gradle 實例會作為參數傳遞給閉包。

projectsLoaded(action)

新增一個動作,以便在已從設定建立建置的專案時呼叫。尚未評估任何專案。

removeListener(listener)

從此建置移除指定的監聽器。

removeProjectEvaluationListener(listener)

從此建置移除指定的監聽器。

rootProject(action)

新增一個動作,以針對此建置的根專案執行。如果根專案已可用,則會立即執行動作。否則,會在根專案變成可用時執行動作。

settingsEvaluated(closure)

新增一個閉包,以便在已載入和評估建置設定時呼叫。設定物件已完全設定,且已準備好用於載入建置專案。Settings 物件會作為參數傳遞給閉包。

settingsEvaluated(action)

新增一個動作,以便在已載入和評估建置設定時呼叫。設定物件已完全設定,且已準備好用於載入建置專案。

useLogger(logger)
已過時

使用指定的物件作為記錄器。記錄器物件可以實作 Gradle.addListener(java.lang.Object) 支援的任何監聽器介面。

腳本區塊

沒有腳本區塊

屬性詳細資訊

ExtensionContainer extensions (唯讀)

擴充功能的容器。

Gradle gradle (唯讀)

傳回此 Gradle 實例。此方法在初始化腳本中很有用,可明確存取 Gradle 屬性和方法。例如,使用 gradle.parent 可以比使用 parent 更清楚地表達您的意圖。此屬性也允許您從屬性可能被隱藏的範圍(例如,從方法或閉包)存取 Gradle 屬性。

File gradleHomeDir (唯讀)

Gradle 主目錄(如果有的話)。此目錄是包含執行此建置的 Gradle 發行版本的目錄。

當使用「Gradle Daemon」時,這可能與啟動建置時使用的 Gradle 發行版本不同。如果現有的 Daemon 程序正在執行,且被視為相容(例如,具有所需的 JVM 特性),則可能會使用此 Daemon 來代替啟動新程序,而且它可能是從不同的「Gradle 主目錄」啟動的。但是,它保證是相同版本的 Gradle。如需有關 Gradle Daemon 的詳細資訊,請參閱使用者手冊

File gradleUserHomeDir (唯讀)

Gradle 使用者主目錄。此目錄用於快取下載的資源、編譯的建置腳本等等。

String gradleVersion (唯讀)

目前的 Gradle 版本。

Collection<IncludedBuild> includedBuilds (唯讀)

此建置的包含建置。

Gradle parent (唯讀)

此建置的父建置(如果有的話)。

PluginManager pluginManager (唯讀)

此外掛感知物件的外掛管理器。

PluginContainer plugins (唯讀)

已套用至此物件的外掛容器。

雖然未過時,但建議使用此介面的方法或 PluginAware.getPluginManager(),而不是使用外掛容器。

使用此介面或 PluginAware.getPluginManager() 上的 'apply' 方法之一來套用外掛,而不是透過外掛容器套用。

使用 PluginManager.hasPlugin(java.lang.String) 或類似方法來查詢外掛的套用,而不是透過外掛容器執行此操作。

Project rootProject (唯讀)

此建置的根專案。

StartParameter startParameter (唯讀)

用於啟動此建置的 StartParameter

TaskExecutionGraph taskGraph (唯讀)

此建置的 TaskExecutionGraph

方法詳細資訊

void addBuildListener(BuildListener buildListener)

BuildListener 新增至此 Build 實例。監聽器會收到建置執行期間發生的事件通知。

void addListener(Object listener)

將指定的監聽器新增至此建置。監聽器可以實作任何給定的監聽器介面

以下監聽器類型可以使用,但在啟用組態快取時不受支援。它們的使用已過時,並且在未來的 Gradle 版本中,新增這些類型的監聽器將會變成錯誤

ProjectEvaluationListener addProjectEvaluationListener(ProjectEvaluationListener listener)

將監聽器新增至此建置,以接收專案評估的通知。

void afterProject(Closure closure)

新增一個閉包,以便在專案評估後立即呼叫。專案會作為第一個參數傳遞給閉包。專案評估失敗(如果有的話)會作為第二個參數傳遞。這兩個參數都是選用的。

void afterProject(Action<? super Project> action)

新增一個動作,以便在專案評估後立即呼叫。

void allprojects(Action<? super Project> action)

新增一個動作,以針對此建置的所有專案執行。該動作會立即針對所有已可用的專案執行。它也會在後續專案新增至此建置時執行。

void apply(Closure closure)

套用零個或多個外掛或腳本。

給定的閉包用於設定 ObjectConfigurationAction,它會「建置」外掛應用程式。

此方法與 PluginAware.apply(java.util.Map) 的不同之處在於,它允許多次調用組態動作的方法。

void apply(Map<String, ?> options)

使用以 Map 形式提供的指定選項,套用外掛或腳本。如果外掛程式已套用,則不執行任何動作。

給定的 Map 會作為一系列方法呼叫套用至新建立的 ObjectConfigurationAction。也就是說,Map 中的每個鍵都應該是 ObjectConfigurationAction 的方法名稱,而值應該是該方法的相容引數。

以下選項可用

  • from:要套用的腳本。接受 Project.uri(java.lang.Object) 支援的任何路徑。
  • plugin:要套用的外掛的 ID 或實作類別。
  • to:目標委派物件或物件。預設值是此外掛感知物件。使用此選項來設定此物件以外的物件。

void apply(Action<? super ObjectConfigurationAction> action)

套用零個或多個外掛或腳本。

給定的閉包用於設定 ObjectConfigurationAction,它會「建置」外掛應用程式。

此方法與 PluginAware.apply(java.util.Map) 的不同之處在於,它允許多次調用組態動作的方法。

void beforeProject(Closure closure)

新增一個閉包,以便在專案評估前立即呼叫。專案會作為參數傳遞給閉包。

void beforeProject(Action<? super Project> action)

新增一個動作,以便在專案評估前立即呼叫。

void beforeSettings(Closure<?> closure)

新增一個動作,以便在建置設定載入和評估之前呼叫。

void beforeSettings(Action<? super Settings> action)

新增一個動作,以便在建置設定載入和評估之前呼叫。

void buildFinished(Closure closure)

注意:此方法已過時,並將在下一個 Gradle 主要版本中移除。

新增一個閉包,以便在建置完成時呼叫。所有選取的 Task 都已執行。BuildResult 實例會作為參數傳遞給閉包。

void buildFinished(Action<? super BuildResult> action)

注意:此方法已過時,並將在下一個 Gradle 主要版本中移除。

新增一個動作,以便在建置完成時呼叫。所有選取的 Task 都已執行。

IncludedBuild includedBuild(String name)

傳回此建置中具有指定名稱的包含建置。

void projectsEvaluated(Closure closure)

新增一個閉包,以便在已評估建置的所有專案時呼叫。專案物件已完全設定,且已準備好用於填入 Task 圖表。此 Gradle 實例會作為參數傳遞給閉包。

void projectsEvaluated(Action<? super Gradle> action)

新增一個動作,以便在已評估建置的所有專案時呼叫。專案物件已完全設定,且已準備好用於填入 Task 圖表。

void projectsLoaded(Closure closure)

新增一個閉包,以便在已從設定建立建置的專案時呼叫。尚未評估任何專案。此 Gradle 實例會作為參數傳遞給閉包。

從初始化腳本中掛鉤到 projectsLoaded 以設定 buildscript 類別路徑的範例。

//init.gradle
gradle.projectsLoaded {
  rootProject.buildscript {
    repositories {
      //...
    }
    dependencies {
      //...
    }
  }
}

void projectsLoaded(Action<? super Gradle> action)

新增一個動作,以便在已從設定建立建置的專案時呼叫。尚未評估任何專案。

void removeListener(Object listener)

從此建置移除指定的監聽器。

void removeProjectEvaluationListener(ProjectEvaluationListener listener)

從此建置移除指定的監聽器。

void rootProject(Action<? super Project> action)

新增一個動作,以針對此建置的根專案執行。如果根專案已可用,則會立即執行動作。否則,會在根專案變成可用時執行動作。

void settingsEvaluated(Closure closure)

新增一個閉包,以便在已載入和評估建置設定時呼叫。設定物件已完全設定,且已準備好用於載入建置專案。Settings 物件會作為參數傳遞給閉包。

void settingsEvaluated(Action<? super Settings> action)

新增一個動作,以便在已載入和評估建置設定時呼叫。設定物件已完全設定,且已準備好用於載入建置專案。

void useLogger(Object logger)

注意:此方法已過時,並將在下一個 Gradle 主要版本中移除。

使用指定的物件作為記錄器。記錄器物件可以實作 Gradle.addListener(java.lang.Object) 支援的任何監聽器介面。

每個監聽器介面都正好有一個關聯的記錄器。當您使用給定監聽器類型的記錄器呼叫此方法時,新的記錄器將取代目前與監聽器類型關聯的任何記錄器。這可讓您針對特定類型的事件,選擇性地將 Gradle 提供的標準記錄取代為您自己的實作。