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