我如何从另一个调用一个Capistrano任务?
我如何从另一个调用一个Capistrano任务?
例如:
task :foo do # stuff end task :bar do # INVOKE :foo end
你可以通过使用命名空间来做到这一点:
namespace :test do task :one do end task :two do test.one #or just directly call it: one end end
只要小心你使用的名称,不要覆盖一些重要的function。
logging:在Capistrano 3中,使用invoke()
,例如
desc "Task that does something" task :do_something do invoke 'namespace:task' end
一般你通过定义依赖关系来做到这一点:
before :bar, :foo
你也可以使用Rake::Task["namespace:task"].invoke
,这个工作
如果任务存在于另一个命名空间中,则可以使用find_and_execute_task
。