如何声明Gradle自定义任务的依赖项?

如何声明Gradle自定义任务的依赖项?,gradle,dependencies,Gradle,Dependencies,如果我已创建自定义任务: class MyTask extends DefaultTask { ... } 我可以在其他时间创建实例并声明依赖项: task(["type": MyTask, "dependsOn": importantThing], "MyTaskName") 然而,将任务定义与依赖项声明分开似乎有点奇怪。也就是说,似乎定义任务的所有内容都应该放在一个地方,否则在没有正确依赖项的情况下很容易实例化任务。有更好的方法吗?任务应该是通用的、自包含的。它们应该只对自己的输入

如果我已创建自定义任务:

class MyTask extends DefaultTask {
   ...
}
我可以在其他时间创建实例并声明依赖项:

task(["type": MyTask, "dependsOn": importantThing], "MyTaskName")

然而,将任务定义与依赖项声明分开似乎有点奇怪。也就是说,似乎定义任务的所有内容都应该放在一个地方,否则在没有正确依赖项的情况下很容易实例化任务。有更好的方法吗?

任务应该是通用的、自包含的。它们应该只对自己的输入属性进行操作,而不应该假设存在其他任务。声明任务及其依赖项是构建脚本和/或插件的责任。

您可以在构造函数中配置依赖项,例如使用
dependsOn
。但是必须在那里使用字符串,因为在创建任务时,其他任务可能不存在。所以不应该有依赖于其他任务的任务?测试任务通常不依赖于编译/运行代码吗?没有Java,JaCoCo毫无意义。从“如果Java插件也应用于您的项目,将创建一个名为jacocoTestReport的新任务,该任务取决于测试任务”。我误解了吗?
测试任务需要类文件作为输入;不管他们来自哪里。您引用的行为由JaCoCo插件提供。