运行 所有抽成任务?

Run all rake tasks?

我怎样才能 运行 所有 rake 任务?

task :a do
    # stuff
end
task :b do
    # stuff
end
task :c do
    # stuff
end

task :all do
    # Run all other tasks?
end

我知道我能做到

task :all => [:a, :b, :c] do
end

但是如果我添加新任务,我还需要将它添加到 :all 依赖项中。我会 喜欢避免手动操作,因为这似乎很容易忘记。

这是一种方法:

namespace :hot_tasks do |hot_tasks_namespace|
  task :task1 do
    puts 1
  end
  task :task2 do
    puts 2
  end
  task :all do
    hot_tasks_namespace.tasks.each do |task|
      Rake::Task[task].invoke
    end
  end
end

运行它:

# bundle exec rake hot_tasks:all
1
2

this question 有更多(不一定更好)的想法,尤其是当您使用 rails 应用程序时。