我如何从另一个调用一个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 

更多在https://github.com/capistrano/capistrano#before–after

一般你通过定义依赖关系来做到这一点:

 before :bar, :foo 

你也可以使用Rake::Task["namespace:task"].invoke ,这个工作

如果任务存在于另一个命名空间中,则可以使用find_and_execute_task