Есть ли способ запустить заставленную грабли, не запускающие предпосылки?

StackOverflow https://stackoverflow.com/questions/3733921

  •  03-10-2019
  •  | 
  •  

Вопрос

Есть ли коммутатор командной строки, мне не хватает?

На данный момент мне это делать:

#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.

Граас построен
Установка граблей
Райк идет

Я делаю это много, на самом деле. Мне очень удобно запускать отдельные шаги, когда я хочу, и иметь большую последовательность шагов, когда мне нужен.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top