Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-如何定义创建taskGraph后生成的gradle任务的依赖性_Android_Gradle_Android Gradle Plugin_Spoon_Spoon Gradle Plugin - Fatal编程技术网

Android-如何定义创建taskGraph后生成的gradle任务的依赖性

Android-如何定义创建taskGraph后生成的gradle任务的依赖性,android,gradle,android-gradle-plugin,spoon,spoon-gradle-plugin,Android,Gradle,Android Gradle Plugin,Spoon,Spoon Gradle Plugin,更新 我可以在运行时获得任务。但我无法完成另一项任务。我使用的代码是: gradle.taskGraph.whenReady {taskGraph -> if (taskGraph.hasTask(spoonFreeDebugAndroidTest)) { for(Task task : project.gradle.taskGraph.allTasks.iterator()) { if(task.name.startsWith("spoonFreeDebu

更新

我可以在运行时获得任务。但我无法完成另一项任务。我使用的代码是:

gradle.taskGraph.whenReady {taskGraph ->
if (taskGraph.hasTask(spoonFreeDebugAndroidTest)) {
    for(Task task : project.gradle.taskGraph.allTasks.iterator())
    {
        if(task.name.startsWith("spoonFreeDebugAndroidTest")) {
            println "spoonFreeDebugAndroidTest task found"
            ciIntegrationTests.mustRunAfter task.name
            task.finalizedBy "ciIntegrationTests"
        }
    }
}
}

但是,当“spoonFreeDebugAndroidTest”失败时,任务“ciIntegrationTests”仍然不会执行。(但println行会被打印出来。)

原始问题

我有一个任务是在运行时生成的(当任务图生成时),这取决于我的应用程序风格。e、 g.任务“spoonFreeAndroidDebugTest”是在运行时生成的,我在build.gradle中无法访问

我想在此任务上添加一个依赖项,这样即使其他任务失败,此任务也会执行。我尝试了以下方法:

spoon.finalizedBy "ciIntegrationTests"
这给了我这个错误

在com.stanfy.spoon.gradle.SpoonExtension上找不到参数[ciIntegrationTests]的finalizedBy()方法_Decorated@147456b6.

这给了我一个错误

找不到属性“spoonDeltaAndroidDebugTest”

导致

方法java.lang.String.finalizedBy()的签名不适用于参数类型:(java.lang.String)值:[ciIntegrationTests]


是否有一种方法可以访问运行时生成的build.gradle中的任务。

用任务[“taskName”]包装任务字符串


任务[“spoonDeltaAndroidDebugTest”]。由任务[“ciIntegrationTests”]完成

参考:

其他问题的答案是否有帮助@愤怒号。我尝试了
whenReady
,结果在项目:app上找不到属性“spoonFreeAndroidDebugTest”。要遵循的代码片段:gradle.taskGraph.whenReady{taskGraph->taskGraph.if(taskGraph.hasTask(spoonFreeDebugAndroidTest)){spoonFreeAndroidDebugTest.Finalized by“ciIntegrationTests”}@RaGe我已经更新了问题。我错过了问题前面的“即使任务失败”部分。如果使用
--continue
标志运行,则可以使gradle在失败时继续。看看这是否有帮助。请注意,该标志也将继续您构建脚本的其他部分中过去的错误。
spoonFreeAndroidDebugTest.finalizedBy "ciIntegrationTests"
"spoonDeltaAndroidDebugTest".finalizedBy "ciIntegrationTests"