如何为任务提供可选属性?
class CustomTask extends DefaultTask {
@Input
Closure preconfig
// ...
}
这种方式使用户在使用preconfig
类型定义任务时,必须提供CustomTask
闭包作为参数。
除了定义设置属性的方法之外,我如何实现声明方式?
class CustomTask extends DefaultTask {
@Input
Closure preconfig
def preconfig(Closure c){
this.preconfig = c
}
// ...
}
答案 0 :(得分:4)
实际上,我找到了一个为Ssl3
字段分配默认值的解决方案。
示例:
@Input
然后检查class CustomTask extends DefaultTask {
@Input
Closure preconfig = null // or { } <- empty closure
// ...
}
变量是否为空:
@Input
还有一个有用的注释@Optional
:
// ...
@TaskAction
def action(){
if (preconfig) { preconfig() }
}
// ...
答案 1 :(得分:1)
class CustomTask extends DefaultTask {
void setPreconfig(Closure c) {
inputs.property("preconfig", c)
}
...
}
@see TaskInputs