【问题标题】:bundler jruby and json-jruby捆绑器 jruby 和 json-jruby
【发布时间】:2012-02-21 08:11:44
【问题描述】:

我使用 jruby 1.5.2 作为我的生产环境,我正在尝试将我的依赖管理从 gem_tools 移动到“捆绑器”。

一旦我在服务器上签出代码并运行“捆绑安装”,它就会出现以下错误: 在您的 Gemfile 中列出的任何 gem 源中找不到 gem 'json-jruby (~> 1.5.0) ruby​​'

我也尝试了 jruby -S gem install json-jruby 然后尝试了 Gemfile 中的 :path 选项,之后出现以下错误:

在 /usr/local/jruby-1.5.2/lib/ruby/gems/1.8/gems/json-jruby-1.5.0- 的源代码中找不到 gem 'json-jruby (>= 0) java'爪哇。 源不包含任何版本的 'json-jruby (>= 0) java'

对于解决此问题的任何想法将不胜感激。我希望很多人都像我一样有这个问题。

以下是一些环境细节: jruby 1.5.2 (ruby 1.8.7 patchlevel 249) (2010-08-20 1c5e29d) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_30) [amd64-java] 轨道 2.2.2

宝石文件:

....
....
platforms :jruby do
  gem 'activerecord-jdbc-adapter', '0.9.4'
  gem 'activerecord-jdbcmysql-adapter', '0.9.4'
  gem "json-jruby", "~> 1.5.0"
  gem 'image_voodoo', '0.7'
  gem 'jdbc-mysql', '5.0.4'
  gem 'jruby-openssl', '0.2.3'
end 
....
....
group :integration, :devwithcaching, :production do
  if defined?(JRUBY_VERSION)
    gem "json-jruby", "~> 1.5.0"
  else
    gem 'json_pure', '1.6.5'
  end
end

【问题讨论】:

  • 当你尝试 gem install json 会发生什么
  • 那个gem目录也是空的

标签: ruby-on-rails ruby jruby bundler


【解决方案1】:

所以这是一个旧的,但我的答案仍然与最近的 JRuby 相关:

最好只使用 json gem,它在 MRI 上提供 C ext,在 JRuby 上提供 -java 版本以获得最佳性能(从版本 1.5.0 ~ 01/2011)因此很简单:

ruby gem 'json', '>= 1.5.0' 不要将其包装在 platforms :jruby 块中(更糟糕的是在 Gemfile 中使用 defined? JRUBY_VERSION)。

注意: json-jruby gem 似乎与 json gem 在同一时间 (01/2011) 停止了发布版本开始发布 gem 的 -java 版本,因此如果在 JRuby 上存在问题并且不太可能修复它们,因此最好避免。

【讨论】:

    【解决方案2】:

    这个 json-jruby 版本不存在。看起来 json-jruby 的文档也是错误的 http://rubygems.org/gems/json-jruby

    尝试将版本替换为 1.5.0-java 而不是 1.5.0。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      相关资源
      最近更新 更多