Как сделать JRuby 1.6 по умолчанию для Ruby 1.9?


79

как лучше всего заставить JRuby работать в режиме 1.9 по умолчанию?

т.е. я хочу запустить rake testвместоjruby --1.9 -S rake test

Спасибо

Ответы:


109

Используйте 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 ...

22

Альтернативное решение - поместить следующую строку (и другие настройки) в ваш файл ~ / .jrubyrc

compat.version=1.9

18

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!



8

При использовании 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 на irc-канале #jrubyc)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.