孤立的Gradle任务?

时间:2014-06-27 18:34:31

标签: gradle build.gradle

我正在尝试将一个有点复杂的Makefile移植到Gradle。我需要能够执行一些彼此隔离执行的任务,但我无法弄清楚如何在Gradle中执行此操作;例如,如果我有一个类似于以下内容的build.gradle:

apply plugin: 'eclipse'
apply plugin: 'idea'

task foo {
  println 'foo'
}

task bar {
  println 'bar'
}

task baz {
  println 'baz'
}

如果我跑:

  

gradle -q foo

然后我希望看到

  

FOO

但相反,我看到了:

  

foobarbaz

打印到我的终端。

如何将Gradle配置为仅执行单个任务?

1 个答案:

答案 0 :(得分:4)

您还没有给任何功能任务;您所看到的是正在实例化的任务的输出。

将build.gradle更改为此...

task foo {
  doLast {
    println 'foo'
  }
}

task bar << {
  println 'bar'
}

task baz {
  println 'baz'
}

然后运行foo任务:

gradle foo

你的输出应该是......

baz
:foo
foo

...显示在创建baz任务时输出baz,然后执行foo任务(&#34;:foo&#34;),然后输出foo任务。请注意&#34;&lt;&lt;&#34; operator是doLast的别名。

请参阅Gradle用户指南中的Build Script Basics