为什么gradle在gradle.build中运行每个任务

时间:2016-04-17 09:25:51

标签: gradle build.gradle

我很陌生并且有一个基本的问题。

当我将自定义任务添加到我的gradle.build文件并调用“gradlw build”或“gradle clean”或任何其他gradle命令时, 它会自动运行我的自定义任务。

那是事情在gradle中如何运作?运行构建文件中的每个任务? 有没有办法只在我手动操作时运行任务?

1 个答案:

答案 0 :(得分:2)

task foo {
  println 'hello'
}

这会创建一个任务,并且在任务的配置期间,它会告诉gradle执行println 'hello'。每个构建都配置了每个任务,因为gradle需要知道它的配置是什么,以确定是否必须执行任务。

task foo << {
  println 'hello'
}

这会创建一个任务,并且在任务的执行期间,它会告诉gradle执行println 'hello'。因此,只有在您明确选择运行任务foo或依赖foo的任务时才会执行代码。

它相当于

task foo {
  doLast {
    println 'hello'
  }
}

您选择不发布您的代码,可能假设gradle表现得很奇怪,并且您的代码与问题无关。所以这只是一个猜测,但你可能使用了第一个不正确的代码,而不是第二个,正确的代码。