Есть ли способ запустить заставленную грабли, не запускающие предпосылки?
Вопрос
Есть ли коммутатор командной строки, мне не хватает?
На данный момент мне это делать:
#task :install => :build do
task :install do
end
Решение
Кажется, я решил эту проблему, просто добавив дополнительные задачи в формате «taskname_no_prerequisites». Таким образом, например, в коде ниже выполнения «Rak install_no_prerequisites» не приведет к выполнению «сборки».
desc "Build"
task :build do
puts "BUILDING..."
end
desc "Install"
task :install => :build do
puts "INSTALLING..."
end
Rake::Task::tasks.each do |task|
desc "#{task} without prerequisites"
task "#{task}_no_prerequisites".to_sym do
task.invoke_without_prerequisites
end
end
module Rake
class Task
def invoke_without_prerequisites
execute
end
end
end
Другие советы
Если вы определите зависимость от задачи, она всегда будет работать первым. Тем не менее, вы можете создавать свои задачи индивидуально, а затем объединять их вместе с другой задачей, как это:
task :build do
...
end
task :install do
...
end
task :go => [:build, :install]
И тогда вы можете назвать построить или устанавливать задачи самостоятельно или запустить последовательность с задачей GO.
Граас построен
Установка граблей
Райк идет
Я делаю это много, на самом деле. Мне очень удобно запускать отдельные шаги, когда я хочу, и иметь большую последовательность шагов, когда мне нужен.