【问题标题】:Capistrano 2 - Pass array arguments to a Rake taskCapistrano 2 - 将数组参数传递给 Rake 任务
【发布时间】:2015-02-14 03:20:42
【问题描述】:

我正在尝试在我的deploy.rb 中编写一个 Rake 任务,该任务会传递一组参数。我将通过 capistrano 运行它。

假设如下任务:

desc "my task"
task :mytask, [:arguments] => :environment do |t, args|
  puts 'hello'
end

当我尝试运行 cap mytask['arg1 arg2 arg3'] 时,我得到以下信息:

the task `mytask["arg1 arg2 arg3"]' does not exist

有什么想法吗?我有一个这样定义的任务,我在本地运行没有问题,但是使用cap 定义这样的任务是行不通的。

注意:在没有参数部分的情况下运行 cap mytask 有效。这显然不是我想要的。

【问题讨论】:

    标签: ruby rake capistrano


    【解决方案1】:

    Rake 任务由字符串定义,并在内部通过 Rake::Task["name"] 调用。如果 cap 将您的数组视为任务名称字符串的一部分,它将不起作用。

    作为'mytask' != 'mytask["arg1 arg2 arg3"]'

    【讨论】:

    • 对不起,我不能进一步帮助你,希望我能通过告诉你它(可能)失败的原因来引导你朝着正确的方向前进。您可以寻找另一种将参数传递给 capistrano 任务的方法。
    • @n_x_l capistrano 2 也很有可能不支持该 rake 功能。我发现 Capistrano 3 应该以这种方式支持它,但如果 2 也支持它,则找不到任何来源。源代码如此不同,很有可能它没有。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 2011-07-02
    • 2012-05-18
    • 1970-01-01
    • 2012-04-30
    相关资源
    最近更新 更多