2011-02-23 76 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