¿Cómo hacer que JRuby 1.6 sea predeterminado en Ruby 1.9?

79

¿Cuál es la mejor manera de hacer que JRuby se ejecute en modo 1.9 por defecto?

es decir, quiero correr en rake testlugar dejruby --1.9 -S rake test

Gracias

Arkadiy
fuente

Respuestas:

109

Utilice la JRUBY_OPTSvariable de entorno. JRUBY_OPTScontiene una lista de argumentos que se agregan a cualquier argumento especificado en la línea de comando.

Por ejemplo (en Linux):

$ jruby -v
jruby 1.6.0.RC1 (nivel de parche 330 de ruby ​​1.8.7) (2011-01-10 769f847) (Java HotSp ...
$ exportación JRUBY_OPTS = - 1.9
$ jruby -v
jruby 1.6.0.RC1 (ruby 1.9.2 tronco 136) (2011-01-10 769f847) (Java HotSpot (TM ...
$ exportación JRUBY_OPTS = - 1.8
$ jruby -v
jruby 1.6.0.RC1 (nivel de parche 330 de ruby ​​1.8.7) (2011-01-10 769f847) (Java HotSpo ...
toddsundsted
fuente
22

Una solución alternativa es poner la siguiente línea (y otras configuraciones) en su archivo ~ / .jrubyrc

compat.version=1.9
Alex Blakemore
fuente
18

RVM permite ahora construir JRuby / Rubinius con el modo predeterminado establecido por defecto:

rvm install jruby-1.6.7-d19 --1.9
rvm install rbx-2.0.testing-d19 --1.9

El sufijo -d19se puede omitir, lo uso solo para distinguir entre rubíes de modo 1.8 y 1.9 .

El --1.9modo se convertirá en el predeterminado en las próximas versiones principales de JRuby / Rubinius, por lo que puede asegurarse de usar 1.8 con el --1.8conmutador rvm.

ACTUALIZACIÓN 2012-05-25: Jruby 1.7.0.preview1 está fuera, ¡es 1.9 por defecto!

mpapis
fuente
11

En Windows, utilice set JRUBY_OPTS=--1.9en su lugar.

taiansu
fuente
8

Cuando se usa warbler para empaquetar una aplicación como un archivo war, la versión se puede configurar ejecutando:

warble config

que crea un config/warble.rbarchivo. Este archivo contiene muchos comentarios sobre cómo configurar Warbler, y en particular:

  # Set JRuby to run in 1.9 mode.
  # config.webxml.jruby.compat.version = "1.9"

Descomente la segunda línea eliminando el #y vuelva a empaquetar su guerra con el warblecomando.

Sébastien Le Callonnec
fuente
6

Si está creando jruby desde java:

RubyInstanceConfig config = new RubyInstanceConfig();   
config.setCompatVersion(CompatVersion.Ruby1_9); 
Ruby runtime = Ruby.newInstance(config)

(Gracias a bbrowning en el canal #jrubyc irc)

James Moore
fuente