更新
我可以在运行时掌握任务。但我无法完成另一项任务。我使用的代码是:
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 行。)
原始问题
我有一个在运行时(生成任务图时)构建的勺子任务,具体取决于我的应用程序风格。例如,一个任务“spoonFreeAndroidDebugTest”是在运行时生成的,我在 build.gradle 中无法访问。
我想添加对这个任务的依赖,这样即使其他任务失败,这个任务也能执行。我尝试了这些方法:
spoon.finalizedBy "ciIntegrationTests"
这给了我这个错误
在 com.stanfy.spoon.gradle.SpoonExtension_Decorated@147456b6 上找不到参数 [ciIntegrationTests] 的 finalizedBy() 方法。
和
spoonFreeAndroidDebugTest.finalizedBy "ciIntegrationTests"
这给了我一个错误
找不到属性“spoonDeltaAndroidDebugTest”
和
"spoonDeltaAndroidDebugTest".finalizedBy "ciIntegrationTests"
这导致
方法没有签名:java.lang.String.finalizedBy() 适用于参数类型:(java.lang.String) 值:[ciIntegrationTests]
有没有办法我们可以访问在运行时生成的build.gradle中的任务。