使gradle在每次设置时执行finalizedBy任务(多次)

使gradle在每次设置时执行finalizedBy任务(多次),gradle,android-ndk,gradle-task,Gradle,Android Ndk,Gradle Task,我在以下情况下遇到问题: 为了在一行中运行不同的本机testplugin,我动态地创建一些任务来为每个插件适当地准备环境,然后为托管依赖项的每个testplugin创建一个plugin\u任务 要在设备上启动测试,插件任务由connectedAndroidTest完成 例如,调用gradle plugin\u name\u 1工作正常,它为环境做好准备并开始测试 tasks.register("allTests"){} name_list.each { test_name -> d

我在以下情况下遇到问题:

为了在一行中运行不同的本机testplugin,我动态地创建一些任务来为每个插件适当地准备环境,然后为托管依赖项的每个testplugin创建一个
plugin\u任务

要在设备上启动测试,插件任务由connectedAndroidTest完成

例如,调用
gradle plugin\u name\u 1
工作正常,它为环境做好准备并开始测试

tasks.register("allTests"){}

name_list.each { test_name ->
   def prepare_dir = tasks.register("${test_name}_Prepare_Dir") {...} 
   def copy_files = tasks.register("${test_name}_Copy_Files") {...}

   def plugin_task = tasks.register(test_name){
     dependsOn prepare_dir
     dependsOn copy_files

     finalizedBy connectedAndroidTest
   }

   allTests.configure {
     dependsOn pluginTask
   }
}
现在,当我尝试运行allTests任务时,问题出现了:

然后,gradle正确地操作所有动态创建的任务“prepare_dir”、“copy_files”,为每个插件执行这些任务

但是,connectedAndroidTest将只在所有测试的最后执行,因此只运行一次。但我需要在每个插件任务的每一端执行此任务

gradle的行为是正确的,因为它认为所有插件任务都应该通过connectedAndroidTest完成,因此将其放在图表的末尾

有没有可能让gradle多次执行此任务? 我很高兴能得到帮助


将connectedAndroidTest任务包装到动态创建的任务中,并让plugin_任务依赖于它们,这是没有帮助的。另外,“重新运行任务”参数也没有效果。

Gradle不是这样工作的。每个任务将在每次Gradle调用中执行1次或0次。如果要多次执行同一任务(使用不同的任务输入),则需要多个任务实例,而不是一个

格拉德尔不是这样工作的。每个任务将在每次Gradle调用中执行1次或0次。如果要多次执行同一任务(使用不同的任务输入),则需要多个任务实例,而不是一个