2011-12-22 113 views
1

有幾個地方已經說過「目錄」關鍵字可以用作簡寫。顯然,它可以表示爲一個依賴關係,所以如果它不存在的話它將被創建。rake - 「目錄」關鍵字如何工作?

http://onestepback.org/articles/buildingwithrake/directorydependencies.html

的思想是指定目標目錄作爲依賴,而不是嘗試手動創建它的每個時間,這可以通過使用mkdir_p來實現。使用mkdir_p的缺點是,無論目錄是否已存在,它都會顯示輸出。另一種解決方案是靜默這個命令 - 如果輸出僅在創建目錄時才顯示,則更好。

我使用 「目錄」 關鍵字如下嘗試:


file "destFile" => ["srcFile", directory "myOutputDir"] do 
    FileUtils.cp "srcFile" "myOutputDir/destFile" 
end 

file "destFile" => ["srcFile"] + [directory "myOutputDir"] do 
    FileUtils.cp "srcFile" "myOutputDir/destFile" 
end 

file "destFile" => ["srcFile"] do 
    directory "myOutputDir" 
    FileUtils.cp "srcFile" "myOutputDir/destFile" 
end 

回答

1

如何:

directory "myOutputDir" 
file "myOutputDir/destFile" => ["srcFile", "myOutputDir"] do 
    FileUtils.cp "srcFile" "myOutputDir/destFile" 
end 

我相信它應該作爲一個單獨的任務使用,並像任何其他任務一樣指定爲依賴項。這與指定運行mkdirfile任務基本相同,但操作是隱式的。語法是相同的。

directory也會使子目錄的所有層像這樣:http://onestepback.org/articles/buildingwithrake/directorydependencies.html