定位 tasks
你经常需要在构建文件里找到你定义的 tasks,
举个例子,
为了配置它们或者使用它们作为依赖. 有许多种方式都可以来实现定位.
首先,
每一个任务都必须是一个 project 的有效属性,
并使用任务名来作为属性名:
例子 15.4. 通过属性获取 tasks
build.gradle
task hello
println hello.name
println project.hello.name
Tasks 也可以通过 tasks collection 来得到.
例子 15.5. 通过 tasks collection 获取 tasks
build.gradle
task hello
println tasks.hello.name
println tasks['hello'].name
你也可以使用 tasks.getByPath() 方法通过任务的路径来使用任何 project 里的任务.
你可以通过使用任务的名字, 任务的相对路径或者绝对路径作为 getByPath() 方法的输入.
例子 15.6. 通过路径获取 tasks
build.gradle
project(':projectA') {
task hello
}
task hello
println tasks.getByPath('hello').path
println tasks.getByPath(':hello').path
println tasks.getByPath('projectA:hello').path
println tasks.getByPath(':projectA:hello').path
gradle -q hello 的输出
> gradle -q hello
:hello
:hello
:projectA:hello
:projectA:hello
参考
TaskContainer 可以知道跟多关于定位 tasks 的选项.