我的Rakefile中有很多文件任务,看起来像是
file 'task1' => 'dep' do
sh "some command"
end
还有
task :start => :next
task :last => :dep2
我想知道是否有办法在顶层拯救它,即说
begin
task :last => :dep2
rescue
# do something
end
而不是每个file
任务
file 'task1' => 'dep' do
begin
sh "some command"
rescue
# do something
end
end
有可能吗?
答案 0 :(得分:6)
不,但您可以定义自定义方法来简化任务。
def safe_task(&block)
yield
rescue
# do something
end
file 'task1' => 'dep' do
safe_task do
sh "some command"
end
end
此外,请记住,:task2
取决于:task1
而:task1
可能会引发异常,您应该在:task1
中处理错误,而不是:task2