2013-12-10 123 views
-1

我正在使用Rake編譯一些惱人的LaTeX東西。Rake - 運行一系列任務

由於事實上,我想乾淨我的工作目錄之前編譯。 所以我定義了兩個任務::clean:compile

不知何故天真,我寫了這個:

task :default => [:clean, :compile, :clean] 

但是,我發現了一個有點晚,而讀耙的文檔,這是行不通的,因爲任務的數組包含依賴,不行動,使。

那麼,有沒有一種乾淨的方式來執行一系列的任務,而不用手動調用它們,例如Rake::Task("clean")等。 類似於依賴關係數組。

回答

0

只需定義您的依賴關係並依靠耙子找出有效的訂單。當然,執行:clean任務不止一次會遇到一些麻煩,但您可以使用reenable或使用alias。或者你可以定義

def clean 
    ... 
end 

task :default => [:clean_after_compile] 
task :clean_after_compile => [:compile] do clean end 
task :compile => [:clean_before_compile] 
task :clean_before_compile => [:compile] do clean end 

爲了保持稍微乾燥。由於rake處理依賴關係,而不是序列化,它可能只是比你喜歡的更多的工作。