2016-07-27 64 views
8

我花了太多的时间调试这个,我不知道发生了什么。 “帽子生产部署”今天早上运行良好,现在它只是抛出一个错误。令人惊讶的是,谷歌迄今为止没有得到太多的帮助。我知道的代码基地没有什么改变:Capistrano错误:未定义的方法`已经在<rake ::任务加载:defaults => [:>]::Rake ::任务

➜ sesac-mm-matching git:(deploy) cap production deploy --trace 
    ** Invoke production (first_time) 
    ** Execute production 
    cap aborted! 
    NoMethodError: undefined method `already_invoked' for <Rake::Task load:defaults => []>:Rake::Task 
    /Users/***/.rvm/gems/[email protected]/gems/capistrano-3.6.0/lib/capistrano/dsl.rb:16:in `invoke' 
    /Users/***/.rvm/gems/[email protected]/gems/capistrano-3.6.0/lib/capistrano/setup.rb:24:in `block (2 levels) in <top (required)>' 
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/task.rb:240:in `block in execute' 
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/task.rb:235:in `each' 
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/task.rb:235:in `execute' 
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/task.rb:179:in `block in invoke_with_call_chain' 
    /Users/***/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize' 
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/task.rb:172:in `invoke_with_call_chain' 
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/task.rb:165:in `invoke' 
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:150:in `invoke_task' 
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:106:in `block (2 levels) in top_level' 
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:106:in `each' 
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:106:in `block in top_level' 
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:115:in `run_with_threads' 
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:100:in `top_level' 
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:78:in `block in run' 
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:176:in `standard_exception_handling' 
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:75:in `run' 
    /Users/***/.rvm/gems/[email protected]/gems/capistrano-3.6.0/lib/capistrano/application.rb:14:in `run' 
    /Users/***/.rvm/gems/[email protected]/gems/capistrano-3.6.0/bin/cap:3:in `<top (required)>' 
    /Users/***/.rvm/gems/ruby-2.3.0/bin/cap:23:in `load' 
    /Users/***/.rvm/gems/ruby-2.3.0/bin/cap:23:in `<main>' 
    /Users/***/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval' 
    /Users/***/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>' 
    Tasks: TOP => production 

有人能提供一些方向吗?

回答

11

是的,它看起来像你在新发布的Capistrano 3.6.0中发现了一个错误。请在此处报告此问题:https://github.com/capistrano/capistrano/issues

潜在问题是Capistrano 3.6.0(与错误地)与Rake < 11.0.0不兼容。

在此期间,您可以通过升级耙11.0.0或更高版本与gem install rakebundle update rake解决此问题(根据您是否使用bundle exec对Capistrano的或没有)。

如果您无法升级Rake,请将Capistrano降级到版本3.5.0,直到修复该错误。

更新:Capistrano 3.6.1已发布并恢复与Rake < 11.0.0的兼容性。

+0

谢谢,马特。由于误差与当天早些时候的“捆绑更新”相一致,因此这是完全合理的。 – Lush