更新
我可以在运行时获取任务。但我无法完成另一项任务。我用的代码是:
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行。)
原始问题
我有一个spoon任务,它是在运行时(生成任务图)时构建的,具体取决于我的应用程序风格。例如任务“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 中的任务。
答案 0 :(得分:0)
用任务[" taskName"]
包裹你的任务字符串 // private const int DEFAULT_CHARGE = 200; <-- is not used anymore
public int DefaultCharge
{
get { return SomeSortOfFileOrDatabaseConfiguration.DefaultCharge; }
}
参考: More About Tasks