Как сделать JRuby 1.6 по умолчанию для Ruby 1.9?
Каков наилучший способ заставить JRuby работать в режиме 1.9 по умолчанию?
i.e, я хочу запустить rake test
вместо jruby --1.9 -S rake test
Спасибо
Ответы
Ответ 1
Используйте переменную среды JRUBY_OPTS
. JRUBY_OPTS
содержит список аргументов, которые добавляются к любым аргументам, указанным в командной строке.
Например (в Linux):
$ jruby -v
jruby 1.6.0.RC1 (ruby 1.8.7 patchlevel 330) (2011-01-10 769f847) (Java HotSp...
$ export JRUBY_OPTS=--1.9
$ jruby -v
jruby 1.6.0.RC1 (ruby 1.9.2 trunk 136) (2011-01-10 769f847) (Java HotSpot(TM...
$ export JRUBY_OPTS=--1.8
$ jruby -v
jruby 1.6.0.RC1 (ruby 1.8.7 patchlevel 330) (2011-01-10 769f847) (Java HotSpo...
Ответ 2
Альтернативное решение - поместить следующую строку (и другие настройки) в файл ~/.jrubyrc
compat.version=1.9
Ответ 3
RVM позволяет теперь строить JRuby/Rubinius со стандартным режимом, установленным по умолчанию:
rvm install jruby-1.6.7-d19 --1.9
rvm install rbx-2.0.testing-d19 --1.9
Суффикс -d19
может быть опущен, я использую его только для различия между режимами 1,8 и 1,9.
Режим --1.9
станет стандартным в следующих основных выпусках JRuby/Rubinius, поэтому вы можете использовать 1,8 с переключателем --1.8
rvm.
ОБНОВЛЕНИЕ 2012-05-25: Jruby 1.7.0.preview1 отсутствует, по умолчанию это 1.9!
Ответ 4
В Windows используйте
set JRUBY_OPTS=--1.9
.
Ответ 5
При использовании warbler для упаковки приложения в качестве военного файла, версию можно установить, выполнив:
warble config
который создает файл config/warble.rb
. Этот файл содержит много комментариев о том, как настроить камышевки, и в частности:
# Set JRuby to run in 1.9 mode.
# config.webxml.jruby.compat.version = "1.9"
Раскомментируйте вторую строку, удалив #
и повторно упакуйте свою войну с помощью команды warble
.
Ответ 6
Если вы создаете jruby из java:
RubyInstanceConfig config = new RubyInstanceConfig();
config.setCompatVersion(CompatVersion.Ruby1_9);
Ruby runtime = Ruby.newInstance(config)
(Благодаря bbrowning на канале #jrubyc irc)