#rake
#rake
Вопрос:
Я пытаюсь лучше понять, как rake
это работает. Я посмотрел на веб-сайт rake, чтобы посмотреть, как это работает, но там нет четкого объяснения того, как rake
выполняется поиск файлов Rakefile и какие шаги он выполняет при разрешении зависимостей. Может кто-нибудь объяснить, как rake
это работает?
Ответ №1:
По умолчанию rake
будет искать один из этих файлов в каталоге, из которого вы его запускаете:
- rakefile
- Rakefile
- rakefile.rb
- Rakefile.rb
Вы можете посмотреть документы приложения Rake, чтобы увидеть этот список
Кроме того, любой файл ruby, включая другие файлы rakefile, может быть включен в стандартную require
команду Ruby:
require 'rake/loaders/external-rakefile'
в качестве альтернативы, вы можете import
их:
import 'rake/loaders/external-rakefile'
Чтобы сделать набор задач Rake доступным для использования из любого каталога, создайте .rake
подкаталог в своем домашнем каталоге и поместите туда соответствующие файлы Rake. Любая команда rake с -g
опцией будет использовать эти глобальные файлы Rake (подробнее читайте здесь):
rake -g -T
Кроме того, если -g
опция установлена, Rake сначала попытается загрузить RAKE_SYSTEM
переменную среды files form, если она не установлена, по умолчанию будет установлено значение a home user directory/.rake/*.rake
. Эти файлы будут загружены / импортированы в дополнение к одному из файлов по умолчанию, перечисленных выше.
В противном случае он загрузит первый файл по умолчанию (из приведенного выше списка) и дополнительно импортирует все файлы rake из rakelib
каталога (в разделе местоположение, из которого вы запускаете rake
), ИЛИ этот каталог можно указать с помощью:
--rakelibdir=RAKELIBDIR or -R RAKELIBDIR: Auto-import any .rake files in RAKELIBDIR. (default is 'rakelib')
Комментарии:
1.
rake
Просматривает ли какие-либо переменные среды? Каков порядок поиска файлов rakefile? Спасибо tolitius!2. @Avry, я добавил в ответ более подробную информацию о переменных order и ENV.