在Bundler中指定JRuby版本

时间:2014-06-08 02:52:13

标签: ruby-on-rails ruby jruby

我无法找到能够回答此问题的SO QA。

我通过rvm install jruby安装了JRuby,然后生成了一个新的rails应用程序。为了允许通过rvm自动更改ruby版本,我发现Bundler允许你添加:

ruby '1.9.3', engine: 'jruby', engine_version: '1.7.12'

请参阅此处reference。由于这是1.3,我在我的根应用程序目录中检查了我的Bundler版本:

$ bundle -v
Bundler version 1.6.2

我假设我有这个功能。现在,当我开始将其添加到Gemfile时:

source 'https://rubygems.org'
ruby '1.9.3', engine: 'jruby', engine_version: '1.7.12'

gem 'rails', '4.1.1'
gem 'activerecord-jdbcsqlite3-adapter'

然后在运行cd .. && cd app后我收到了这个问题:

RVM used your Gemfile for selecting Ruby, it is all fine - Heroku does that too,
you can ignore these warnings with 'rvm rvmrc warning ignore  /Users/benmorgan/Sites/sigma/Gemfile'.
To ignore the warning for all files run 'rvm rvmrc warning ignore allGemfiles'.

Unknown ruby string (do not know how to handle): ruby-1.9.3,engine:jruby,engine_version:1.7.12.

你知道如何告诉rvm选择jruby版本吗?是否可以在Gemfile中使用?

1 个答案:

答案 0 :(得分:3)

正如已经链接到RVM reports Gemfile ruby as not installed

的评论所示

RVM对从 Gemfile 解析Ruby“引擎”的支持是有限的,并且与Heroku使用(解析)指令的方式不匹配。

如果您真的希望在 Gemfile 中同时使用它,请使用RVM注释,例如

source "https://rubygems.org"
#ruby=jruby-1.7.12
if ENV["JRUBY"] || RUBY_PLATFORM == "java"
  ruby "1.9.3", engine: "jruby", engine_version: "1.7.12"
end

gem "rails", "~> 4.1.1"
# ...