API 文档 | Script |
---|
所有 Gradle Groovy DSL 脚本都实现了此接口,以添加一些 Gradle 特有的方法。由于您编译的脚本类将实现此接口,因此您可以直接在脚本中使用此接口声明的方法和属性。
通常,一个 Script
对象会附带一个委托对象。例如,构建脚本会附带一个 Project
实例,初始化脚本会附带一个 Gradle
实例。在此 Script
对象上找不到的任何属性引用或方法调用都会转发给委托对象。
属性 | 描述 |
buildscript | 此脚本的脚本处理器。您可以使用此处理器管理用于编译和执行此脚本的类路径。 |
logger | 此脚本的日志记录器。您可以在脚本中使用它来写入日志消息。 |
logging |
|
resources | 提供对资源特定实用方法的访问,例如创建各种资源的工厂方法。 |
方法 | 描述 |
apply(closure) | 使用插件或脚本配置此脚本的委托对象。 |
apply(options) | 使用插件或脚本配置此脚本的委托对象。 |
copy(closure) | 复制指定的文件。给定的 closure 用于配置 |
copySpec(closure) | 创建一个 |
delete(paths) | 删除文件和目录。 |
exec(closure) | 已弃用 执行外部命令。此 closure 配置一个 |
exec(action) | 已弃用 执行外部命令。 |
file(path) | 解析相对于包含此脚本的目录的文件路径。其工作方式如 |
file(path, validation) | 解析相对于包含此脚本的目录的文件路径,并使用给定的方案对其进行验证。请参阅 |
fileTree(baseDir) | 使用给定的基本目录创建一个新的 |
fileTree(baseDir, configureClosure) | 使用给定的基本目录创建一个新的 |
fileTree(args) | 使用提供的参数映射创建一个新的 |
files(paths, configureClosure) | 使用给定的路径创建一个新的 |
files(paths) | 返回包含给定文件的 |
javaexec(closure) | 已弃用 执行 Java main 类。此 closure 配置一个 |
javaexec(action) | 已弃用 执行 Java main 类。 |
mkdir(path) | 创建一个目录并返回指向该目录的文件。 |
relativePath(path) | 返回从包含此脚本的目录到给定路径的相对路径。给定的 path 对象(逻辑上)按 |
tarTree(tarPath) | 创建一个新的 |
uri(path) | 将文件路径解析为 URI,该 URI 相对于包含此脚本的目录。按照 |
zipTree(zipPath) | 创建一个新的 |
块 | 描述 |
buildscript | 配置此脚本的类路径。 |
ScriptHandler
buildscript
(只读)
此脚本的脚本处理器。您可以使用此处理器管理用于编译和执行此脚本的类路径。
Logger
logger
(只读)
此脚本的日志记录器。您可以在脚本中使用它来写入日志消息。
LoggingManager
logging
(只读)
LoggingManager
可用于接收日志记录并控制此脚本的标准输出/错误捕获。默认情况下,System.out 会重定向到 Gradle 日志系统的 QUIET 级别,System.err 会重定向到 ERROR 级别。
ResourceHandler
resources
(只读)
提供对资源特定实用方法的访问,例如创建各种资源的工厂方法。
void
apply
(Closure
closure)
使用插件或脚本配置此脚本的委托对象。
给定的 closure 用于配置一个 ObjectConfigurationAction
,然后用它来配置委托对象。
使用插件或脚本配置此脚本的委托对象。
可用的选项如下:
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' } }
boolean
delete
(Object
...
paths)
Object
...删除文件和目录。
解析相对于包含此脚本的目录的文件路径。其工作方式如 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)
Map
<String
, ?>使用提供的参数映射创建一个新的 ConfigurableFileTree
。该映射将作为属性应用于新的文件树。示例
fileTree(dir:'src', excludes:['**/ignore/**','**/.svn/**'])
返回的文件树是延迟的,只有在查询文件树内容时才会扫描文件。文件树也是活的,每次查询文件树内容时都会扫描文件。
ConfigurableFileCollection
files
(Object
paths, Closure
configureClosure)
使用给定的路径创建一个新的 ConfigurableFileCollection
。文件集合使用给定的 closure 进行配置。此方法的工作方式如 Project.files(java.lang.Object, groovy.lang.Closure)
所述。相对路径相对于包含此脚本的目录进行解析。
ConfigurableFileCollection
files
(Object
...
paths)
Object
...返回包含给定文件的 ConfigurableFileCollection
。其工作方式如 Project.files(java.lang.Object[])
所述。相对路径相对于包含此脚本的目录进行解析。
ExecResult
javaexec
(Closure
closure)
注意:此方法已弃用,并将在 Gradle 的下一个主要版本中移除。
执行 Java main 类。此 closure 配置一个 JavaExecSpec
。
ExecResult
javaexec
(Action
<? super JavaExecSpec
>
action)
Action
<? super JavaExecSpec
>注意:此方法已弃用,并将在 Gradle 的下一个主要版本中移除。
执行 Java main 类。
返回从包含此脚本的目录到给定路径的相对路径。给定的 path 对象(逻辑上)按 Script.file(java.lang.Object)
所述进行解析,然后计算出相对路径。
创建一个新的 FileTree
,其中包含给定 TAR 文件的内容。给定的 tarPath 路径可以是
Resource
的实例- 任何其他对象都将按照
Script.file(java.lang.Object)
进行评估
返回的文件树是延迟的,只有在查询文件树内容时才会扫描文件。文件树也是活的,每次查询文件树内容时都会扫描文件。
除非传递了自定义的资源实现,否则 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 相对于包含此脚本的目录。按照 Script.file(java.lang.Object)
所述评估提供的 path 对象,但支持任何 URI 方案,而不仅仅是“file:”URI。
创建一个新的 FileTree
,其中包含给定 ZIP 文件的内容。给定的 zipPath 路径根据 Script.file(java.lang.Object)
进行评估。您可以将此方法与 Script.copy(groovy.lang.Closure)
方法结合使用来解压 ZIP 文件。
返回的文件树是延迟的,只有在查询文件树内容时才会扫描文件。文件树也是活的,每次查询文件树内容时都会扫描文件。
配置此脚本的类路径。
给定的 closure 将针对此脚本的 ScriptHandler
执行。 ScriptHandler
作为 closure 的委托对象传递给 closure。
- 委托给
- 来自
buildscript
的ScriptHandler