Как `rake` знает, где искать Rakefiles? - PullRequest
4 голосов
/ 08 октября 2011

Я пытаюсь лучше понять, как работает rake. Я посмотрел на сайте Rake, чтобы увидеть, как он работает, но нет четкого объяснения того, как rake выполняет поиск Rake-файлов и какие шаги он выполняет для разрешения зависимостей. Может кто-нибудь объяснить, как rake работает?

1 Ответ

16 голосов
/ 08 октября 2011

По умолчанию rake будет искать один из этих файлов в каталоге, из которого вы выполняете его :

  • rakefile
  • Rakefile
  • rakefile.rb
  • Rakefile.rb

Чтобы посмотреть этот список, вы можете посмотреть Приложение Rake's * Rake Кроме того, любой рубинфайл , включая другие rakefiles , может быть включен в стандартную команду Ruby require:

require 'rake/loaders/external-rakefile'

, альтернативно, вы можете import их:

import 'rake/loaders/external-rakefile'

Toсделайте набор задач Rake доступным для использования из любого каталога, создайте подкаталог .rake в своем домашнем каталоге и поместите туда соответствующие файлы Rake.Любая команда rake с опцией -g будет использовать эти глобальные файлы Rake (подробнее здесь ):

rake -g -T

Кроме того, если установлена ​​опция -g, Rake сначала попытаетсядля загрузки файлов из переменной среды RAKE_SYSTEM, если она не установлена, по умолчанию будет home user directory/.rake/*.rake.Эти файлы будут загружены / импортированы в дополнение к одному из файлов по умолчанию, перечисленных выше.

В противном случае он загрузит первый файл по умолчанию (из приведенного выше списка) и дополнительно импортирует все файлы rake из каталога rakelib (в папке, из которой вы запускаете rake из)ИЛИ этот каталог можно указать с помощью:

--rakelibdir=RAKELIBDIR or -R RAKELIBDIR: Auto-import any .rake files in RAKELIBDIR. (default is 'rakelib')  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...