在Bundler中指定JRuby版本



我找不到能回答这个问题的SO QA。

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

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

参考此处。因为这是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中有可能吗?

正如已经链接到RVM报告的注释所建议的那样,Gemfile ruby未安装

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"
# ...

最新更新