得到“Gem :: LoadError:无法激活jwt(〜> 0.1.4),已经激活了jwt-1.0.0。”

时间:2014-10-17 01:23:37

标签: ruby-on-rails ruby cucumber

当我尝试运行Cucumber-Ruby测试时,我得到'Gem :: LoadError:无法激活jwt(〜> 0.1.4),已激活jwt-1.0.0。'错误。我在Gemfile.lock上有以下条目

jwt (1.0.0)
...
signet (0.4.5)
   addressable (>= 2.2.3)
   faraday (~> 0.8.1)
   jwt (>= 0.1.5)
   multi_json (>= 1.0.0)

我已经安装了jwt-1.0.0。任何想法如何解决这个问题?非常感谢!

2 个答案:

答案 0 :(得分:1)

Signet gem(对我而言,被称为Google API客户端的依赖项)非常顽皮,并在其Gemspec之外指定JWT gem版本。

# in lib/signet/oauth_2/client.rb line 25
gem 'jwt', '~> 0.1.4'
require 'jwt'

在Gemfile中使用Github版本的Signet gem,删除了此恶意电话。

gem 'signet', git: "https://github.com/google/signet.git"

答案 1 :(得分:0)

尝试在Gemfile中显式回滚jwt,如下所示:

gem 'jwt', '~> 0.1.13'

我遇到了与google-api-client相似的问题,而不是signet:当google-api-client Gemfile说jwt (>= 0.1.5)并且Gemfile.lock可能应该关注时,Gemfile.lock有'jwt', '~> 0.1.5'那。上面的Gemfile更改确保jwt确实是~> 0.1.5并且没有达到1. *。