Есть ли способ запустить грабли без выполнения предварительных условий? - PullRequest
1 голос
/ 17 сентября 2010

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

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

#task :install => :build do
task :install do
end

Ответы [ 2 ]

2 голосов
/ 22 сентября 2010

Кажется, я решил эту проблему, просто добавив дополнительные задачи в формате «имя_задачи_предоставления».Так, например, в приведенном ниже коде выполнение «rake install_no_prerequisites» не приведет к выполнению «build».

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
1 голос
/ 17 сентября 2010

если вы определите зависимость от задачи, она всегда будет выполняться первой.Однако вы можете создавать свои задачи по отдельности, а затем объединять их вместе с другой задачей, например:

task :build do
  ... 
end

task :install do
  ...
end

task :go => [:build, :install]

, и затем вы можете независимо вызывать задачи сборки или установки или запускать последовательность с задачей go.

rake build
rake install
rake go

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

...