我可以捕获错误并继续下一个 Rake 任务吗?

Can I catch errors and continue to next Rake task?

我在另一个 Rake 任务中调用 Rake 任务,如下所示:

namespace :test do
  task :migrate do
    Rake::Task['A:migrate'].invoke
    Rake::Task['B:migrate'].invoke
  end
end

我想知道的是,即使前面的任务失败了,我是否可以继续进行下一个 Rake 任务。例如,A:migrate 中有一个错误,我想捕获它并记录它,但继续 B:migrate。我该怎么做?

Rake 只是 Ruby,因此您可以使用 Ruby 的错误处理功能。

namespace :test do
  task :migrate do
    begin
      Rake::Task['A:migrate'].invoke
    rescue => e
      log(e)
    end
    Rake::Task['B:migrate'].invoke
  end
end