如何一次以编程方式运行多个Rake任务?

cod*_*ger 13 ruby rake

在命令行,我可以运行这样的多个任务

rake environment task1 task2 task3
Run Code Online (Sandbox Code Playgroud)

我该如何以编程方式执行此操作?我知道我可以运行这样的任务

Rake::Task['task1'].invoke
Run Code Online (Sandbox Code Playgroud)

knu*_*nut 16

你可以调用两个任务:

require 'rake'

task :task1 do |t|
  p t
end
task :task2 do |t|
  p t
end


Rake::Task["task1"].invoke
Rake::Task["task2"].invoke
Run Code Online (Sandbox Code Playgroud)

我更喜欢有先决条件的新品尝:

require 'rake'

task :task1 do |t|
  p t
end
task :task2 do |t|
  p t
end
desc "Common task"
task :all => [ :task1, :task2  ]
Rake::Task["all"].invoke
Run Code Online (Sandbox Code Playgroud)

如果我误解了你的问题,你想要执行两次相同的任务:你可以reenable完成任务:

require 'rake'

task :task1 do |t|
  p t
end
Rake::Task["task1"].invoke
Rake::Task["task1"].reenable
Rake::Task["task1"].invoke
Run Code Online (Sandbox Code Playgroud)