我有一个具有不同任务的命名空间:
namespace :mytest do task :setup do; ... end; task :task1 do; ... end; task :task2 do; ... end; end
当我运行 cap mytest 时,我得到任务“备份”不存在。
如何创建调用所有任务的命令?
答案 0 :(得分:3)
task :default do setup task1 task2 end
答案 1 :(得分:0)
在一个项目中,我发现自己经常需要调用给定命名空间中的所有任务。这是Namespace
类的简单猴子补丁,它将添加run_all_tasks
方法。该方法采用可选的except
数组,该数组应该是要排除的任务名称列表(作为符号)。
module Capistrano
class Configuration
module Namespaces
class Namespace
def run_all_tasks(except = [])
except << :all
self.task_list(false).each do |task|
task.body.call unless except.include?(task.name)
end
end
end
end
end
end
该方法将按照定义的顺序运行任务。与任何类型的猴子补丁\ hack一样,请谨慎使用此方法!