Make是一个UNIX®的本机实用程序,是为管理软件编译过程而设计的。它十分通用,足以用于许多其他环境中,即使它已用于将文档编译成书,维护Web站点以及裁减发行版。但是,make也有自身的约束。它具有自己的语法,这取决于制表符的(tabbed)和非制表符的(nontabbed)空白空间。许多其他工具已经进行了扩展,可以弥补make的一些不足,如Aegis和Ant,但这两者也都具有自己的问题。
Make以及类似的工具都有改进的余地,但是它们都不可能让Ruby黑客十分开心。您从这里要去哪里?幸好,可以使用一些Ruby选项。Rant是一个由StefanLang编写的工具(请参阅参考资料)。Rant仍处于开发周期的初级阶段,因此它可能还没有成熟到足以适用于每个人。JimWeirich编写的Rake是一个在Ruby社区中广泛使用的成熟系统。
Rake是用Ruby编写的,并使用Ruby作为它的语法,因此学习曲线很短。Rake使用Ruby的元编程功能来扩展语言,使之更利落地适应自动化任务。Rake附带的rdoc中列出了一些优点(请注意,前两个是诸如make的其他任务自动化工具所共有的):
用户可以用先决条件指定任务。Rake支持规则模式来合并隐式任务。Rake是轻量级的。它可以用其他项目发布为单个文件。依靠Rake的项目不需要在目标系统上安装Rake。
评论