как лучше всего заставить JRuby работать в режиме 1.9 по умолчанию?
т.е. я хочу запустить rake test
вместоjruby --1.9 -S rake test
Спасибо
Ответы:
Используйте 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 ... $ экспорт JRUBY_OPTS = - 1.8 $ jruby -v jruby 1.6.0.RC1 (ruby 1.8.7 patchlevel 330) (2011-01-10 769f847) (Java HotSpo ...
Альтернативное решение - поместить следующую строку (и другие настройки) в ваш файл ~ / .jrubyrc
compat.version=1.9
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!
При использовании warbler для упаковки приложения как файла войны версию можно установить, запустив:
warble config
который создает config/warble.rb
файл. Этот файл содержит множество комментариев о том, как настроить камышевку, в частности:
# Set JRuby to run in 1.9 mode.
# config.webxml.jruby.compat.version = "1.9"
Раскомментируйте вторую строку, удалив #
, и повторно упакуйте вашу войну с помощью warble
команды.
Если вы создаете jruby из java:
RubyInstanceConfig config = new RubyInstanceConfig();
config.setCompatVersion(CompatVersion.Ruby1_9);
Ruby runtime = Ruby.newInstance(config)
(Спасибо bbrowning на irc-канале #jrubyc)