我想创建一个任务,将其作为其他任务的输入@OutputFile
。我知道需要将输出文件作为输入,而不是创建该输出文件的任务,以便使用输出的任务可以输出创建者。我如何找到哪个任务创建输出?如何找到创建一些特定输出的Gradle任务?
更具体:
$unknownTask
创建someKnownOutput
newTask
使用someKnownOutput
newTask
想dependsOn $unknownTask
如何的$unknownTask
值可以找到?
我想创建一个任务,将其作为其他任务的输入@OutputFile
。我知道需要将输出文件作为输入,而不是创建该输出文件的任务,以便使用输出的任务可以输出创建者。我如何找到哪个任务创建输出?如何找到创建一些特定输出的Gradle任务?
更具体:
$unknownTask
创建someKnownOutput
newTask
使用someKnownOutput
newTask
想dependsOn $unknownTask
如何的$unknownTask
值可以找到?
下应该打印出来,其输出是thisIsTheOne
任务:
task findTaskCreatingSpecificOutput() {
doLast {
subprojects { subproject ->
subproject.tasks.findAll { task ->
task.outputs.getFiles().getFiles().findAll { output ->
output == 'thisIsTheOne'
}
}.flatten().each { println it }
}
}
}
请使用您问题上的编辑链接添加其他信息。后回答按钮应该只用于问题的完整答案。 - [来自评论](/ review/low-quality-posts/16035083) – Carpetsmoker
这是我的问题的答案。 –
好吧,够公平的。没有任何文本,有点难以分辨,特别是因为有人问“你的build.gradle文件是怎么样的?”在评论中;-) – Carpetsmoker
通过“输出”你的意思是控制台输出或文件?如果任务将该文件标记为TaskOutput,则可以通过使用-i或-d(我想象Gradle会记录这些事情)来获得洞察。如果没有,那么Gradle无法知道内部的任务是什么,所以你应该自己做。 –
我已经编辑了这个问题,以便更清楚(即使我认为“更具体”下的描述非常清晰)。 –
常规方法是了解Gradle或使用的插件如何工作以获取必要的见解。文件的名称是否不变或是否遵循某种模式? –