我正在努力更好地了解rake
的工作原理。我查看了rake网站,看看它是如何工作的,但是没有一个明确的解释rake
如何搜索Rakefiles以及它在解决依赖关系时所经历的步骤。有人可以解释rake
的工作原理吗?
答案 0 :(得分:16)
默认情况下,rake
将在您从执行目录的目录下查找其中一个文件:
您可以查看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')