3

自定义任务类上是否有某种“构造后挂钩”可用,所以我可以调用inputsoutputs特定逻辑之类的方法?

假设我正在定义一个自定义 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()功能,而不是重写它的一部分。但我不知道从哪里调用它。

4

2 回答 2

2

如有必要,您可以在任务类的零参数构造函数中进行这些初始化。默认属性值通常由插件设置(特别是如果默认值取决于任务类外部的信息)。输入/输出注释应该优先于输入/输出 API。(后者适用于没有自己的任务类的临时任务。)

于 2013-10-01T05:12:17.900 回答
0

我需要完全相同的东西,据我了解,答案或多或少 - 不,目前不可能。

https://discuss.gradle.org/t/custom-task-with-extensions/12491

于 2015-11-04T08:41:58.727 回答