在自定义任务类上是否有某种“构建后挂钩”可用,这样我就可以在特定于类的逻辑中调用inputs
和outputs
之类的方法了吗?
假设我正在定义一个定制的Gradle任务类,如
class ExampleTask extends DefaultTask {
def exFile = null
}
现在,我想通过
task('ex', type: ExampleTask) {
exFile = file("some-example.json")
}
..。我想在实例上自动运行等效的inputs(exFile)
。逻辑到哪里去处理这类配置?我看到可以在我的自定义任务类中的方法上添加一个@InputFiles
装饰符,如
@InputFiles
def getFiles(){
file(exFile)
}
..。但这似乎不太普遍。我宁愿只使用现有的inputs()
功能,也不愿重写其中的部分。但我不知道该从哪里打过去。
发布于 2013-09-30 21:12:17
如果有必要,可以在任务类的零参数构造函数中执行这些初始化.默认属性值通常由插件设置(尤其是如果默认值依赖于来自任务类外部的信息)。输入/输出注释应该优于输入/输出API。(后者存在于没有自己的任务类的临时任务中。)
发布于 2015-11-04 00:41:58
我需要完全一样的东西,据我理解,答案或多或少是-不,这是目前不可能的。
请参阅https://discuss.gradle.org/t/custom-task-with-extensions/12491
https://stackoverflow.com/questions/19106413
复制