我在build.gradle
中有以下内容:
def shouldExecute = { taskName ->
def propertyName = "${taskName}.dryrun"
!project.hasProperty(propertyName) || project[propertyName] != 'true'
}
gradle.taskGraph.useFilter({ task ->
println("*********************** ${task.name}: ${shouldExecute(task.name)}")
shouldExecute(task.name)
} as Spec)
但是当我运行gradlew -Ptest.dryrun=true clean build
时,我看不到println
的输出,test
任务仍然执行。为什么useFilter
不起作用?
答案 0 :(得分:1)
这对我来说很好。我在上面的脚本中添加的内容只有task test
。然后我运行了gradle test
,有无-Ptest.dryrun=true
。两次我都得到了预期的输出和行为。我想不出有什么理由不适合你。我建议从小开始(我确信它会在那种情况下起作用)并逐渐添加回来,直到它停止工作。希望这会引导您解决问题。