如何用rake进行分层构建?

时间:2020-03-06 14:20:08  来源:igfitidea点击:

我最近开始使用Rake来构建一些我的(非红宝石)软件包。 Rake很不错,但是我发现缺少的是一种进行分层构建的方法(在子目录中聚合Rakefile)。由于这是大多数其他构建工具中的常见功能,所以我想知道是否有人对Rake更加熟悉。

解决方案

我建议将Buildr用于非Ruby构建任务。它基于Rake(位于Rake之上,允许我们使用Rake的所有功能),但更适合编译语言的语义。它还支持分层构建。

我也想不出办法。我最终做了:

SUBDIR = "subdir"
task :subtask => SRC_FILES do |t|
    chdir(SUBDIR) do 
        system("rake")
    end
end

task :subtaskclean do |t|
    chdir(SUBDIR) do 
        system("rake clean")
    end
end

task :subtaskclean do |t|
    chdir(SUBDIR) do 
        system("rake clobber")
    end
end

task :default => [:maintask, :subtask]
task :clean => :subtaskclean
task :clobber => :subtaskclobber

金田很烂。其实真的很烂。我搜索了文档,但找不到等效的<antcall>

我敢肯定,因为它全部是Ruby,而我几乎不了解Ruby,所以有某种"要求"某种超级明显的方法。

Buildr使用范围的概念以及项目的名称。

Rake.application.current_scope应该是发现如何使用它们的入口。我希望这有帮助。