2011-02-23 62 views
4

我有一個項目,該項目包括多個項目,類似的:如何使用Rake管理多個目錄項目?

MY_PROJECT \ proj_A \ (代碼,測試,Rake文件等) proj_B \ (代碼,測試,Rake文件等) proj_C \ (代碼,測試,耙文件等)

我想在「my_project」下創建一個Rakefile,它可以在其他項目中執行Rakefile。例如,爲了打包整個應用程序,我需要運行在proj_A,proj_B和proj_C(按照該順序)中的Rakefile中定義的任務。

這樣做的最好方法是什麼?只需要一個Rakefile來定義調用其他Rakefiles的任務呢?

回答

4

創建一個取決於所有其他項目的rake任務。

import 'projdir1/Rakefile' 
import 'projdir2/Rakefile' 

task :finalproject => [:project1, :project2] do 
    # do nothing or maybe some cleanup 
end 

任務:project1和:project2將在包含的外部rakefiles中定義。

另請參見此頁查看更復雜的示例。 http://rake.rubyforge.org/files/doc/rakefile_rdoc.html

+0

什麼是「:project1」指的是?我假定在「這個」Rakefile中有一個任務。那麼加載另一個Rakefile的正確方法是什麼,以便我可以調用它的任務? – codecraig 2011-02-23 12:30:41

+0

我已經更新瞭如何加載外部rakefiles的評論。他們只是ruby文件,但你需要使用'import'而不是'require'來包含它們。在開始搜索之前,需要在文件名中添加一個'.rb'後綴。 – Alkaline 2011-02-23 12:58:10