我在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
不起作用? 最佳答案
这对我来说很好。我在上面的脚本中添加的唯一内容是task test
。然后,我运行gradle test
,带有和不带有-Ptest.dryrun=true
。两次我都得到了预期的输出和行为。我想不出为什么它对您不起作用的充分理由。我建议从小处着手(我确定它会在这种情况下起作用),然后逐渐添加回去直到它停止工作为止。希望这将导致您找到问题的原因。
关于gradle - `gradle.taskGraph.useFilter`没有执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18647790/