And*_*mov 5 gradle build.gradle gradle-plugin gradle-task
如何为任务提供可选属性?
class CustomTask extends DefaultTask {
@Input
Closure preconfig
// ...
}
Run Code Online (Sandbox Code Playgroud)
这种方式要求用户在preconfig使用CustomTask类型定义任务时提供闭包作为参数。
除了定义设置属性的方法之外,如何实现声明式方式?
class CustomTask extends DefaultTask {
@Input
Closure preconfig
def preconfig(Closure c){
this.preconfig = c
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
实际上,我找到了为@Input字段分配默认值的解决方案。
例子:
class CustomTask extends DefaultTask {
@Input
Closure preconfig = null // or { } <- empty closure
// ...
}
Run Code Online (Sandbox Code Playgroud)
然后检查@Input变量是否不为空:
// ...
@TaskAction
def action(){
if (preconfig) { preconfig() }
}
// ...
Run Code Online (Sandbox Code Playgroud)
还有有用的注释@Optional:
class CustomTask extends DefaultTask {
@Input @Optional
Closure preconfig
// ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2685 次 |
| 最近记录: |