Рейк устанавливается так же, как Make в том, что Rakefile состоит из целей и зависимостей. Это отличается от обычного рубинового скрипта тем, что Rake начинается с цели, которую вы запрашиваете, и рекурсивно выполняет свои зависимости перед выполнением самой цели.
Таким образом, установка может выглядеть следующим образом:
task :install => :stage do
# stuff to do
end
Здесь ваша цель является install
задачей, и это зависит от какой-либо другой задачи называется stage
.
Чтобы выполнить install
, Реки должны сначала выполнить зависимости stage
(если он есть), то stage
, а затем, наконец, он выполняет install
. Так что нет, вы не выполняете весь файл, достаточно его, чтобы безопасно выполнить цель, которую вы просили.
Реки также поддерживает цель файлов:
file 'foo.html' => 'bar.xml' do |t|
# Build foo.html from bar.xml, however that is done
end
Если вы знаете сделать, это выглядит знакомым. Рейк сначала проверяет, зависит ли от bar.xml
, и если да, то он выполняет это. Затем, если bar.xml
новее, чем foo.html
, то Rake выполняет эту задачу. Если foo.html
новее, то Рейк предполагает, что он был создан и пропускает его.
Для получения дополнительной информации, Rake User Guide - хорошее место для начала, если вы хотите узнать, что делает Рейк.
Кроме того, если вы выполните «rake install -dry-run», вы увидите, какие задачи будут выполняться, без какой-либо обработки, фактически выполняемой. – Shadwell