Gradle 可选@Input
Gradle optional @Input
如何为任务提供可选的 属性?
class CustomTask extends DefaultTask {
@Input
Closure preconfig
// ...
}
这种方式要求用户在使用 CustomTask
类型定义任务时提供 preconfig
闭包作为参数。
除了定义设置属性的方法之外,如何实现声明方式?
class CustomTask extends DefaultTask {
@Input
Closure preconfig
def preconfig(Closure c){
this.preconfig = c
}
// ...
}
class CustomTask extends DefaultTask {
void setPreconfig(Closure c) {
inputs.property("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
// ...
}
如何为任务提供可选的 属性?
class CustomTask extends DefaultTask {
@Input
Closure preconfig
// ...
}
这种方式要求用户在使用 CustomTask
类型定义任务时提供 preconfig
闭包作为参数。
除了定义设置属性的方法之外,如何实现声明方式?
class CustomTask extends DefaultTask {
@Input
Closure preconfig
def preconfig(Closure c){
this.preconfig = c
}
// ...
}
class CustomTask extends DefaultTask {
void setPreconfig(Closure c) {
inputs.property("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
// ...
}