首页 > 解决方案 > 为什么我的 gradle 任务在没有依赖关系的情况下被调用?

问题描述

我有一个 gradle 任务,我想在打印变量的值时被忽略。我不明白为什么要调用它,并且值正在改变。

def value = 'something'

task changeValue() {
value = 'somethingElse'
}

task printTask() {
    println "${value}"
}

打印的值应该是something. 为什么会somethingElse被打印出来?

编辑:

我现在有

task changeValue() << {
value = 'somethingElse'
}

所以这只会在执行阶段执行。

但是现在如果我将打印任务更改为

task printTask(dependsOn: changeValue) {
    println "${value}"
}

我希望这somethingElse是打印出来的。但现在我只能something打印出来。

编辑 2:忘记在 printTask 中添加 << 。

标签: javagradle

解决方案


您必须了解 gradle 生命周期。查看此链接:构建生命周期

您的任务中的值在配置阶段发生更改。当我们运行一个任务时,它的执行阶段开始,但它的配置阶段在构建过程中运行。


推荐阅读