Script

API 文档Script

所有 Gradle Groovy DSL 脚本都实现了此接口,以添加一些 Gradle 特有的方法。由于您编译的脚本类将实现此接口,因此您可以直接在脚本中使用此接口声明的方法和属性。

通常,一个 Script 对象会附带一个委托对象。例如,构建脚本会附带一个 Project 实例,初始化脚本会附带一个 Gradle 实例。在此 Script 对象上找不到的任何属性引用或方法调用都会转发给委托对象。

属性

属性描述
buildscript

此脚本的脚本处理器。您可以使用此处理器管理用于编译和执行此脚本的类路径。

logger

此脚本的日志记录器。您可以在脚本中使用它来写入日志消息。

logging

LoggingManager 可用于接收日志记录并控制此脚本的标准输出/错误捕获。默认情况下,System.out 会重定向到 Gradle 日志系统的 QUIET 级别,System.err 会重定向到 ERROR 级别。

resources

提供对资源特定实用方法的访问,例如创建各种资源的工厂方法。

方法

方法描述
apply(closure)

使用插件或脚本配置此脚本的委托对象。

apply(options)

使用插件或脚本配置此脚本的委托对象。

copy(closure)

复制指定的文件。给定的 closure 用于配置 CopySpec,然后用其来复制文件。示例

copySpec(closure)

创建一个 CopySpec,稍后可用于复制文件或创建归档文件。给定的 closure 用于配置此方法返回的 CopySpec

delete(paths)

删除文件和目录。

exec(closure)
已弃用

执行外部命令。此 closure 配置一个 ExecSpec

exec(action)
已弃用

执行外部命令。

file(path)

解析相对于包含此脚本的目录的文件路径。其工作方式如 Project.file(java.lang.Object) 所述。

file(path, validation)

解析相对于包含此脚本的目录的文件路径,并使用给定的方案对其进行验证。请参阅 PathValidation 以了解可能的验证列表。

fileTree(baseDir)

使用给定的基本目录创建一个新的 ConfigurableFileTree。给定的 baseDir 路径根据 Script.file(java.lang.Object) 进行评估。

fileTree(baseDir, configureClosure)

使用给定的基本目录创建一个新的 ConfigurableFileTree。给定的 baseDir 路径根据 Script.file(java.lang.Object) 进行评估。该 closure 将用于配置新的文件树。文件树将作为 closure 的委托对象传递给 closure。示例

fileTree(args)

使用提供的参数映射创建一个新的 ConfigurableFileTree。该映射将作为属性应用于新的文件树。示例

files(paths, configureClosure)

使用给定的路径创建一个新的 ConfigurableFileCollection。文件集合使用给定的 closure 进行配置。此方法的工作方式如 Project.files(java.lang.Object, groovy.lang.Closure) 所述。相对路径相对于包含此脚本的目录进行解析。

files(paths)

返回包含给定文件的 ConfigurableFileCollection。其工作方式如 Project.files(java.lang.Object[]) 所述。相对路径相对于包含此脚本的目录进行解析。

javaexec(closure)
已弃用

执行 Java main 类。此 closure 配置一个 JavaExecSpec

javaexec(action)
已弃用

执行 Java main 类。

mkdir(path)

创建一个目录并返回指向该目录的文件。

relativePath(path)

返回从包含此脚本的目录到给定路径的相对路径。给定的 path 对象(逻辑上)按 Script.file(java.lang.Object) 所述进行解析,然后计算出相对路径。

tarTree(tarPath)

创建一个新的 FileTree,其中包含给定 TAR 文件的内容。给定的 tarPath 路径可以是

uri(path)

将文件路径解析为 URI,该 URI 相对于包含此脚本的目录。按照 Script.file(java.lang.Object) 所述评估提供的 path 对象,但支持任何 URI 方案,而不仅仅是“file:”URI。

zipTree(zipPath)

创建一个新的 FileTree,其中包含给定 ZIP 文件的内容。给定的 zipPath 路径根据 Script.file(java.lang.Object) 进行评估。您可以将此方法与 Script.copy(groovy.lang.Closure) 方法结合使用来解压 ZIP 文件。

脚本块

描述
buildscript

配置此脚本的类路径。

属性详情

ScriptHandler buildscript (只读)

此脚本的脚本处理器。您可以使用此处理器管理用于编译和执行此脚本的类路径。

Logger logger (只读)

此脚本的日志记录器。您可以在脚本中使用它来写入日志消息。

LoggingManager logging (只读)

LoggingManager 可用于接收日志记录并控制此脚本的标准输出/错误捕获。默认情况下,System.out 会重定向到 Gradle 日志系统的 QUIET 级别,System.err 会重定向到 ERROR 级别。

ResourceHandler resources (只读)

提供对资源特定实用方法的访问,例如创建各种资源的工厂方法。

方法详情

void apply(Closure closure)

使用插件或脚本配置此脚本的委托对象。

给定的 closure 用于配置一个 ObjectConfigurationAction,然后用它来配置委托对象。

void apply(Map<String, ?> options)

使用插件或脚本配置此脚本的委托对象。

可用的选项如下:

  • from:应用于委托对象的脚本。接受 Script.uri(java.lang.Object) 支持的任何路径。
  • plugin:应用于委托对象的插件 ID 或实现类。
  • to:目标委托对象或对象集合。

更多详情请参见 ObjectConfigurationAction

WorkResult copy(Closure closure)

复制指定的文件。给定的 closure 用于配置 CopySpec,然后用其来复制文件。示例

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

请注意,CopySpecs 可以嵌套

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)

解析相对于包含此脚本的目录的文件路径。其工作方式如 Project.file(java.lang.Object) 所述。

File file(Object path, PathValidation validation)

解析相对于包含此脚本的目录的文件路径,并使用给定的方案对其进行验证。请参阅 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 的委托对象传递给 closure。示例

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

返回的文件树是延迟的,只有在查询文件树内容时才会扫描文件。文件树也是活的,每次查询文件树内容时都会扫描文件。

ConfigurableFileTree fileTree(Map<String, ?> args)

使用提供的参数映射创建一个新的 ConfigurableFileTree。该映射将作为属性应用于新的文件树。示例

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

返回的文件树是延迟的,只有在查询文件树内容时才会扫描文件。文件树也是活的,每次查询文件树内容时都会扫描文件。

ConfigurableFileCollection files(Object paths, Closure configureClosure)

使用给定的路径创建一个新的 ConfigurableFileCollection。文件集合使用给定的 closure 进行配置。此方法的工作方式如 Project.files(java.lang.Object, groovy.lang.Closure) 所述。相对路径相对于包含此脚本的目录进行解析。

返回包含给定文件的 ConfigurableFileCollection。其工作方式如 Project.files(java.lang.Object[]) 所述。相对路径相对于包含此脚本的目录进行解析。

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)

返回从包含此脚本的目录到给定路径的相对路径。给定的 path 对象(逻辑上)按 Script.file(java.lang.Object) 所述进行解析,然后计算出相对路径。

FileTree tarTree(Object tarPath)

创建一个新的 FileTree,其中包含给定 TAR 文件的内容。给定的 tarPath 路径可以是

返回的文件树是延迟的,只有在查询文件树内容时才会扫描文件。文件树也是活的,每次查询文件树内容时都会扫描文件。

除非传递了自定义的资源实现,否则 tar tree 会尝试根据文件扩展名猜测压缩类型。

您可以将此方法与 Script.copy(groovy.lang.Closure) 方法结合使用来解压 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,该 URI 相对于包含此脚本的目录。按照 Script.file(java.lang.Object) 所述评估提供的 path 对象,但支持任何 URI 方案,而不仅仅是“file:”URI。

FileTree zipTree(Object zipPath)

创建一个新的 FileTree,其中包含给定 ZIP 文件的内容。给定的 zipPath 路径根据 Script.file(java.lang.Object) 进行评估。您可以将此方法与 Script.copy(groovy.lang.Closure) 方法结合使用来解压 ZIP 文件。

返回的文件树是延迟的,只有在查询文件树内容时才会扫描文件。文件树也是活的,每次查询文件树内容时都会扫描文件。

脚本块详情

buildscript { }

配置此脚本的类路径。

给定的 closure 将针对此脚本的 ScriptHandler 执行。 ScriptHandler 作为 closure 的委托对象传递给 closure。

委托给
来自 buildscriptScriptHandler