Есть ли переключатель командной строки, который мне не хватает?Есть ли способ запустить задачу рейка без выполнения предварительных условий?
На данный момент у меня сделать это:
#task :install => :build do
task :install do
end
Есть ли переключатель командной строки, который мне не хватает?Есть ли способ запустить задачу рейка без выполнения предварительных условий?
На данный момент у меня сделать это:
#task :install => :build do
task :install do
end
Я, похоже, решил эту проблему, просто добавив дополнительные задачи в формате «taskname_no_prerequisites». Так, например, в приведенном ниже коде выполнение «rake 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]
, а затем вы можете вызвать сборку или установить задачи самостоятельно, или запустить последовательность с задачей идти.
rake build
rake install
rake go
я сделать это много, на самом деле. мне очень удобно запускать отдельные шаги, когда захочу, и выполнять большую последовательность шагов, когда они мне нужны.
Почему бы не вызвать .execute непосредственно на объект задачи в определении задачи? Invoke_without_prerequisites кажется просто псевдонимом – Titas