0

我有以下内容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工作?

4

1 回答 1

1

这对我来说很好。我在上面的脚本中添加的唯一内容是task test. 然后我跑了gradle test,有没有-Ptest.dryrun=true。两次我都得到了预期的输出和行为。我想不出一个很好的理由为什么它对你不起作用。我建议从小处着手(我相信在这种情况下它会起作用)并逐渐添加东西直到它停止工作。希望这将引导您找到问题的原因。

于 2013-09-06T00:21:33.693 回答