Script

API 文件Script

所有 Gradle Groovy DSL script 都實作此介面,以加入一些 Gradle 特定的方法。由於您編譯後的 script 類別將實作此介面,您可以直接在您的 script 中使用此介面宣告的方法和屬性。

一般來說,Script 物件會附加一個委派物件。例如,建置 script 會附加一個 Project 實例,而初始化 script 會附加一個 Gradle 實例。任何在此 Script 物件上找不到的屬性參考或方法呼叫都會轉發到委派物件。

屬性

屬性描述
buildscript

此 script 的 script 處理器。您可以使用此處理器來管理用於編譯和執行此 script 的類別路徑。

logger

此 script 的 logger。您可以在您的 script 中使用它來寫入日誌訊息。

logging

LoggingManager 可以用於接收日誌和控制此 script 的標準輸出/錯誤捕獲。預設情況下,System.out 以 QUIET 日誌級別重新導向到 Gradle 日誌系統,而 System.err 以 ERROR 日誌級別重新導向。

resources

提供對資源特定工具方法的存取,例如建立各種資源的工廠方法。

方法

方法描述
apply(closure)

使用外掛或 script 配置此 script 的委派物件。

apply(options)

使用外掛或 script 配置此 script 的委派物件。

copy(closure)

複製指定的檔案。給定的 closure 用於配置 CopySpec,然後用於複製檔案。範例

copySpec(closure)

建立一個 CopySpec,稍後可用於複製檔案或建立封存檔。給定的 closure 用於在 CopySpec 由此方法返回之前配置它。

delete(paths)

刪除檔案和目錄。

exec(closure)
已棄用

執行外部命令。此 closure 配置 ExecSpec

exec(action)
已棄用

執行外部命令。

file(path)

解析相對於包含此 script 的目錄的檔案路徑。其運作方式如同 Project.file(java.lang.Object) 所述

file(path, validation)

解析相對於包含此 script 的目錄的檔案路徑,並使用給定的方案驗證它。請參閱 PathValidation 以取得可能的驗證列表。

fileTree(baseDir)

使用給定的基礎目錄建立新的 ConfigurableFileTree。給定的 baseDir 路徑會依照 Script.file(java.lang.Object) 進行評估。

fileTree(baseDir, configureClosure)

使用給定的基礎目錄建立新的 ConfigurableFileTree。給定的 baseDir 路徑會依照 Script.file(java.lang.Object) 進行評估。此 closure 將用於配置新的檔案樹狀結構。檔案樹狀結構會作為其委派傳遞到 closure。範例

fileTree(args)

使用提供的引數 Map 建立新的 ConfigurableFileTree。此 Map 將作為屬性應用於新的檔案樹狀結構。範例

files(paths, configureClosure)

使用給定的路徑建立新的 ConfigurableFileCollection。檔案集合使用給定的 closure 進行配置。此方法的運作方式如同 Project.files(java.lang.Object, groovy.lang.Closure) 所述。相對路徑會相對於包含此 script 的目錄進行解析。

files(paths)

返回包含給定檔案的 ConfigurableFileCollection。其運作方式如同 Project.files(java.lang.Object[]) 所述。相對路徑會相對於包含此 script 的目錄進行解析。

javaexec(closure)
已棄用

執行 Java main 類別。此 closure 配置 JavaExecSpec

javaexec(action)
已棄用

執行 Java main 類別。

mkdir(path)

建立目錄並返回指向它的檔案。

relativePath(path)

返回從包含此 script 的目錄到給定路徑的相對路徑。給定的路徑物件會依照 Script.file(java.lang.Object) 所述進行 (邏輯) 解析,並從中計算相對路徑。

tarTree(tarPath)

建立新的 FileTree,其中包含給定 TAR 檔案的內容。給定的 tarPath 路徑可以是

uri(path)

將檔案路徑解析為 URI,相對於包含此 script 的目錄。評估提供的路徑物件,如同 Script.file(java.lang.Object) 所述,但 URI 方案不受限於 'file:' URI。

zipTree(zipPath)

建立新的 FileTree,其中包含給定 ZIP 檔案的內容。給定的 zipPath 路徑會依照 Script.file(java.lang.Object) 進行評估。您可以將此方法與 Script.copy(groovy.lang.Closure) 方法結合使用,以解壓縮 ZIP 檔案。

Script 區塊

區塊描述
buildscript

配置此 script 的類別路徑。

屬性詳細資訊

ScriptHandler buildscript (唯讀)

此 script 的 script 處理器。您可以使用此處理器來管理用於編譯和執行此 script 的類別路徑。

Logger logger (唯讀)

此 script 的 logger。您可以在您的 script 中使用它來寫入日誌訊息。

LoggingManager logging (唯讀)

LoggingManager 可以用於接收日誌和控制此 script 的標準輸出/錯誤捕獲。預設情況下,System.out 以 QUIET 日誌級別重新導向到 Gradle 日誌系統,而 System.err 以 ERROR 日誌級別重新導向。

ResourceHandler resources (唯讀)

提供對資源特定工具方法的存取,例如建立各種資源的工廠方法。

方法詳細資訊

void apply(Closure closure)

使用外掛或 script 配置此 script 的委派物件。

給定的 closure 用於配置 ObjectConfigurationAction,然後用於配置委派物件。

void apply(Map<String, ?> options)

使用外掛或 script 配置此 script 的委派物件。

以下選項可用

  • from:要應用於委派物件的 script。接受 Script.uri(java.lang.Object) 支援的任何路徑。
  • plugin:要應用於委派物件的外掛的 ID 或實作類別。
  • to:目標委派物件或多個物件。

如需更多詳細資訊,請參閱 ObjectConfigurationAction

WorkResult copy(Closure closure)

複製指定的檔案。給定的 closure 用於配置 CopySpec,然後用於複製檔案。範例

copy {
   from configurations.runtimeClasspath
   into 'build/deploy/lib'
}

請注意,CopySpec 可以巢狀結構

copy {
   into 'build/webroot'
   exclude '**/.svn/**'
   from('src/main/webapp') {
      include '**/*.jsp'
      filter(ReplaceTokens, tokens:[copyright:'2009', version:'2.3.1'])
   }
   from('src/main/js') {
      include '**/*.js'
   }
}

CopySpec copySpec(Closure closure)

建立一個 CopySpec,稍後可用於複製檔案或建立封存檔。給定的 closure 用於在 CopySpec 由此方法返回之前配置它。

boolean delete(Object... paths)

刪除檔案和目錄。

ExecResult exec(Closure closure)

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

執行外部命令。此 closure 配置 ExecSpec

ExecResult exec(Action<? super ExecSpec> action)

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

執行外部命令。

File file(Object path)

解析相對於包含此 script 的目錄的檔案路徑。其運作方式如同 Project.file(java.lang.Object) 所述

File file(Object path, PathValidation validation)

解析相對於包含此 script 的目錄的檔案路徑,並使用給定的方案驗證它。請參閱 PathValidation 以取得可能的驗證列表。

ConfigurableFileTree fileTree(Object baseDir)

使用給定的基礎目錄建立新的 ConfigurableFileTree。給定的 baseDir 路徑會依照 Script.file(java.lang.Object) 進行評估。

返回的檔案樹狀結構是延遲載入的,因此它僅在查詢檔案樹狀結構的內容時才掃描檔案。檔案樹狀結構也是即時的,因此它會在每次查詢檔案樹狀結構的內容時掃描檔案。

ConfigurableFileTree fileTree(Object baseDir, Closure configureClosure)

使用給定的基礎目錄建立新的 ConfigurableFileTree。給定的 baseDir 路徑會依照 Script.file(java.lang.Object) 進行評估。此 closure 將用於配置新的檔案樹狀結構。檔案樹狀結構會作為其委派傳遞到 closure。範例

fileTree('src') {
   exclude '**/.svn/**'
}.copy { into 'dest'}

返回的檔案樹狀結構是延遲載入的,因此它僅在查詢檔案樹狀結構的內容時才掃描檔案。檔案樹狀結構也是即時的,因此它會在每次查詢檔案樹狀結構的內容時掃描檔案。

ConfigurableFileTree fileTree(Map<String, ?> args)

使用提供的引數 Map 建立新的 ConfigurableFileTree。此 Map 將作為屬性應用於新的檔案樹狀結構。範例

fileTree(dir:'src', excludes:['**/ignore/**','**/.svn/**'])

返回的檔案樹狀結構是延遲載入的,因此它僅在查詢檔案樹狀結構的內容時才掃描檔案。檔案樹狀結構也是即時的,因此它會在每次查詢檔案樹狀結構的內容時掃描檔案。

ConfigurableFileCollection files(Object paths, Closure configureClosure)

使用給定的路徑建立新的 ConfigurableFileCollection。檔案集合使用給定的 closure 進行配置。此方法的運作方式如同 Project.files(java.lang.Object, groovy.lang.Closure) 所述。相對路徑會相對於包含此 script 的目錄進行解析。

返回包含給定檔案的 ConfigurableFileCollection。其運作方式如同 Project.files(java.lang.Object[]) 所述。相對路徑會相對於包含此 script 的目錄進行解析。

ExecResult javaexec(Closure closure)

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

執行 Java main 類別。此 closure 配置 JavaExecSpec

ExecResult javaexec(Action<? super JavaExecSpec> action)

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

執行 Java main 類別。

File mkdir(Object path)

建立目錄並返回指向它的檔案。

String relativePath(Object path)

返回從包含此 script 的目錄到給定路徑的相對路徑。給定的路徑物件會依照 Script.file(java.lang.Object) 所述進行 (邏輯) 解析,並從中計算相對路徑。

FileTree tarTree(Object tarPath)

建立新的 FileTree,其中包含給定 TAR 檔案的內容。給定的 tarPath 路徑可以是

返回的檔案樹狀結構是延遲載入的,因此它僅在查詢檔案樹狀結構的內容時才掃描檔案。檔案樹狀結構也是即時的,因此它會在每次查詢檔案樹狀結構的內容時掃描檔案。

除非傳遞資源的自訂實作,否則 tar 樹狀結構會嘗試根據檔案副檔名猜測壓縮。

您可以將此方法與 Script.copy(groovy.lang.Closure) 方法結合使用,以解 tar TAR 檔案

task untar(type: Copy) {
  from tarTree('someCompressedTar.gzip')

  //tar tree attempts to guess the compression based on the file extension
  //however if you must specify the compression explicitly you can:
  from tarTree(resources.gzip('someTar.ext'))

  //in case you work with unconventionally compressed tars
  //you can provide your own implementation of a ReadableResource:
  //from tarTree(yourOwnResource as ReadableResource)

  into 'dest'
}

URI uri(Object path)

將檔案路徑解析為 URI,相對於包含此 script 的目錄。評估提供的路徑物件,如同 Script.file(java.lang.Object) 所述,但 URI 方案不受限於 'file:' URI。

FileTree zipTree(Object zipPath)

建立新的 FileTree,其中包含給定 ZIP 檔案的內容。給定的 zipPath 路徑會依照 Script.file(java.lang.Object) 進行評估。您可以將此方法與 Script.copy(groovy.lang.Closure) 方法結合使用,以解壓縮 ZIP 檔案。

返回的檔案樹狀結構是延遲載入的,因此它僅在查詢檔案樹狀結構的內容時才掃描檔案。檔案樹狀結構也是即時的,因此它會在每次查詢檔案樹狀結構的內容時掃描檔案。

Script 區塊詳細資訊

buildscript { }

配置此 script 的類別路徑。

給定的 closure 會針對此 script 的 ScriptHandler 執行。ScriptHandler 作為 closure 的委派傳遞到 closure。