我正在尝试将一个有点复杂的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配置为仅执行单个任务?
答案 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。