我有一个Rake任务,我在下面进行了简化。 我在Windows上使用Ruby 1.9。为什么Rake无法连续调用多个任务?
也许你想猜测下面调用Rake任务“list_all_levels”的结果吗?它应该是:
"Hello level 1"
"Hello level 2"
"Hello level 3"
但由于我不知道的原因,它只打印“你好级别1”,然后停止。
也就是说,它总是只调用第一个任务。 如果我更改第一行以传递arg“42”,它会打印出“Hello level 42”,然后停止。
我想知道为什么它不是调用任务3次并打印所有3行? 有什么办法让它工作我期望的?
task :list_all_levels => [] do
Rake::Task[:list].invoke 1
Rake::Task[:list].invoke 2
Rake::Task[:list].invoke 3
end
task :list, [:level] => [] do |t, args|
puts "Hello level #{args.level}"
end
这真的救了我一天,谢谢! – kizzx2 2010-07-09 20:27:35
如果将它更改为'execute' @PandaWood,请注意,因为它们不完全相同=> [rake execute vs invoke](http://chrisroos.co.uk/blog/2007-12-06-ruby-rake -invoke-vs-execute) – Ron 2014-08-29 15:49:43
这对我来说似乎非常不直观。任何想法,他们为什么这样做? – marcovtwout 2016-01-29 16:26:06