Script

API 文档Script

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

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

属性

属性描述
buildscript

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

logger

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

logging

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

resources

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

方法

方法描述
apply(closure)

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

apply(options)

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

copy(closure)

复制指定的文件。给定的闭包用于配置 CopySpec,然后用于复制文件。 示例

copySpec(closure)

创建一个 CopySpec,稍后可用于复制文件或创建归档文件。给定的闭包用于在 CopySpec 由此方法返回之前对其进行配置。

delete(paths)

删除文件和目录。

exec(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) 进行评估。闭包将用于配置新的文件树。文件树作为其委托传递给闭包。 示例

fileTree(args)

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

files(paths, configureClosure)

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

files(paths)

返回一个包含给定文件的 ConfigurableFileCollection。这与 Project.files(java.lang.Object[]) 的描述相同。相对路径相对于包含此脚本的目录进行解析。

javaexec(closure)
已弃用

执行 Java 主类。闭包配置一个 JavaExecSpec

javaexec(action)
已弃用

执行 Java 主类。

mkdir(path)

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

relativePath(path)

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

tarTree(tarPath)

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

uri(path)

将文件路径解析为 URI,相对于包含此脚本的目录。按照 Script.file(java.lang.Object) 的描述评估提供的路径对象,但任何 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 会在 QUIET 日志级别重定向到 Gradle 日志记录系统,而 System.err 会在 ERROR 日志级别重定向。

ResourceHandler resources (只读)

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

方法详情

void apply(Closure closure)

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

给定的闭包用于配置一个 ObjectConfigurationAction,然后用于配置委托对象。

void apply(Map<String, ?> options)

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

以下选项可用

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

有关更多详细信息,请参阅 ObjectConfigurationAction

WorkResult copy(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,稍后可用于复制文件或创建归档文件。给定的闭包用于在 CopySpec 由此方法返回之前对其进行配置。

boolean delete(Object... paths)

删除文件和目录。

ExecResult exec(Closure closure)

注意:此方法已弃用,将在 Gradle 的下一个主要版本中删除。

执行外部命令。闭包配置一个 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) 进行评估。闭包将用于配置新的文件树。文件树作为其委托传递给闭包。 示例

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。文件集合使用给定的闭包进行配置。此方法的工作方式与 Project.files(java.lang.Object, groovy.lang.Closure) 的描述相同。相对路径相对于包含此脚本的目录进行解析。

返回一个包含给定文件的 ConfigurableFileCollection。这与 Project.files(java.lang.Object[]) 的描述相同。相对路径相对于包含此脚本的目录进行解析。

ExecResult javaexec(Closure closure)

注意:此方法已弃用,将在 Gradle 的下一个主要版本中删除。

执行 Java 主类。闭包配置一个 JavaExecSpec

ExecResult javaexec(Action<? super JavaExecSpec> action)

注意:此方法已弃用,将在 Gradle 的下一个主要版本中删除。

执行 Java 主类。

File mkdir(Object path)

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

String relativePath(Object path)

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

FileTree tarTree(Object tarPath)

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

返回的文件树是惰性的,因此只有在查询文件树的内容时才会扫描文件。文件树也是实时的,因此每次查询文件树的内容时都会扫描文件。

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

您可以将此方法与 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,相对于包含此脚本的目录。按照 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 文件。

返回的文件树是惰性的,因此只有在查询文件树的内容时才会扫描文件。文件树也是实时的,因此每次查询文件树的内容时都会扫描文件。

脚本块详情

buildscript { }

配置此脚本的类路径。

给定的闭包针对此脚本的 ScriptHandler 执行。ScriptHandler 作为闭包的委托传递给闭包。

委托给
来自 buildscriptScriptHandler