2012-02-23 51 views
2

默認情況下Rake會在第一個異常提出時停止。Rake等價於make -k(--keep-going)

似乎沒有相當於make -k的命令行,有沒有什麼辦法可以做到programmaticaly?

+0

用@jmonteiro建議的類似方式解決了我的問題: rule'.o'=> ['.c'] do | t | begin sh「cc#{t.source} -c -o#{t.name}」 rescue RuntimeError => e if keep_going? next 0 else raise e end end end – hausen 2012-02-23 16:07:21

回答

1

不幸的是沒有--keep-goingrake(我認爲這很好)。我能想到的唯一方法是用begin; rescue; end包裝你的Rakefile,但它不會讓它「繼續前進」 - 它只會確保你的rake的執行返回值是0

begin 
    # Former Rakefile code goes here 
rescue 
    puts $!.inspect 
end 

我相信,「堅持下去」是不可能的,因爲當你raise東西,你已經改變了算法的流程 - 即不要試圖忽視例外解決您的問題。