“rake”如何知道在哪里寻找Rakefiles?

时间:2011-10-08 05:17:21

标签: rake

我正在努力更好地了解rake的工作原理。我查看了rake网站,看看它是如何工作的,但是没有一个明确的解释rake如何搜索Rakefiles以及它在解决依赖关系时所经历的步骤。有人可以解释rake的工作原理吗?

1 个答案:

答案 0 :(得分:16)

默认情况下,rake将在您从执行目录的目录下查找其中一个文件:

  • Rake文件
  • Rake文件
  • rakefile.rb
  • Rakefile.rb

您可以查看Rake的Application docs以查看此列表

此外,任何ruby文件包括其他rakefiles 都可以包含在标准的Ruby require命令中:

   
require 'rake/loaders/external-rakefile'

或者,你可以import他们:

   
import 'rake/loaders/external-rakefile'

要在任何目录中创建一组Rake任务,请在主目录中创建一个.rake子目录,并在其中放置相应的Rake文件。任何带有-g选项的rake命令都将使用这些全局Rake文件(阅读更多here):

   
rake -g -T

此外,如果设置了-g选项,Rake将首先尝试从RAKE_SYSTEM环境变量加载文件,如果未设置,则默认为home user directory/.rake/*.rake。这些文件将加载/导入到上面列出的其中一个默认文件。

否则它将加载第一个默认文件(来自上面的列表),另外导入rakelib目录中的所有rake文件(在您运行的位置rake下)来自),或者这个目录可以使用:

指定   
--rakelibdir=RAKELIBDIR or -R RAKELIBDIR: Auto-import any .rake files in RAKELIBDIR. (default is 'rakelib')