No Programming, No Life

プログラミング関連の話題や雑記

GradleのdependsOnがうまく動かない

task clean << {
  println 'cleaning.'
}
task build << {
  println 'building.'
}
build.doLast {
  println 'finish!'
}
task local(dependsOn: [clean, build]) << {
  println 'local debug.'
}

みたいな感じのファイルを用意してlocalタスクを実行すると


$ gradle local
:build
building.
finish!
:clean
cleaning.
:local
local debug.

BUILD SUCCESSFUL

Total time: 3.373 secs


となってしまうのはなぜなんだろう。
build前にcleanが走って欲しいのに、この順番だとbuildしたあとに作業ディレクトリを消しに行ってしまうので生成物が何も残らんのよね。

追記(2011-01-17)

@fumokmm dependsOnの実行はアルファベット順っす。いまのところ…less than a minute ago via Tween

@fumokmm aCleanとか…(笑) メーリングリストだと順序に依存するようなタスクは云々?みたいにいわれつつ、1.0で直るとかいう話もありますけどどうでしょうね http://bit.ly/hKLaPvless than a minute ago via Tween

なんとdependsOnはアルファベット順らしいです。@literaliceさん、ありがとうございます。