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"