如何为任务提供可选属性?
class CustomTask extends DefaultTask {
@Input
Closure preconfig
// ...
}
这种方式要求用户提供
preconfig
使用 CustomTask
定义任务时将闭包作为参数类型。除了定义设置属性的方法之外,如何实现声明式方式?
class CustomTask extends DefaultTask {
@Input
Closure preconfig
def preconfig(Closure c){
this.preconfig = c
}
// ...
}
最佳答案
实际上,我找到了将默认值分配给 @Input
的解决方案。领域。
例子:
class CustomTask extends DefaultTask {
@Input
Closure preconfig = null // or { } <- empty closure
// ...
}
然后检查是否
@Input
变量不为空:// ...
@TaskAction
def action(){
if (preconfig) { preconfig() }
}
// ...
还有有用的注释
@Optional
:class CustomTask extends DefaultTask {
@Input @Optional
Closure preconfig
// ...
}
关于Gradle 可选 @Input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41566160/