Запуск задач Rake в WAS без JRuby

Относится к: Выполнение задач rake на взорванной войне на tomcat без установки jruby

Я пытаюсь запустить задачи rake на моем сервере Tomcat, на котором не установлен JRuby. Я использую warbler для создания файла войны.

Используя ответ на связанный вопрос, я побежал:

java -cp lib/jruby-core*.jar:lib/jruby-stdlib*.jar org.jruby.Main -S rake -T

Это вызывает у меня ошибку:

Exception in thread "main" java.lang.NoClassDefFoundError: org/jruby/Main
Caused by: java.lang.ClassNotFoundException: org.jruby.Main
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)

ls lib понял меня:

ems-gems-activerecord-jdbc-adapter-1.2.2-lib-arjdbc-jdbc-adapter_java.jar
gems-gems-jdbc-sqlite3-3.7.2-lib-sqlite-jdbc-3.7.2.jar
gems-gems-jruby-jars-1.6.8-lib-jruby-core-1.6.8.jar
gems-gems-jruby-jars-1.6.8-lib-jruby-stdlib-1.6.8.jar
gems-gems-jruby-rack-1.1.10-lib-jruby-rack-1.1.10.jar
gems-gems-json-1.7.5-java-lib-json-ext-generator.jar
gems-gems-json-1.7.5-java-lib-json-ext-parser.jar
gems-gems-therubyrhino_jar-1.7.4-jar-rhino-1.7R4.jar
gems-gems-warbler-1.3.6-lib-warbler_jar.jar
jruby-core-1.6.8.jar
jruby-rack-1.1.10.jar
jruby-stdlib-1.6.8.jar
ojdbc6.jar

Открыв файл jruby-core-1.6.8.jar, я вижу, что там действительно есть файл org/jruby/Main.class.

Как видно из списка файлов, файла jar jruby-complete нет, поэтому я не могу запустить команду из https://stackoverflow.com/a/9982556/684934

Что я делаю неправильно, и есть ли лучший способ сделать это?


person Community    schedule 01.11.2012    source источник


Ответы (1)


Я работал над аналогичной проблемой 2 месяца назад, поэтому все могло измениться, но мне нужно было включить все jar-файлы в мой путь к классу, пришлось использовать заглушки bin и установить GEM_HOME, чтобы все заработало. Возможно, это было проще, но сообщения, на которые вы ссылались, у меня тоже не сработали.

На самом деле у меня был установлен jruby (но я использовал его только для создания объединенного пути к классу), поэтому моя установка была примерно такой:

cd /path/to/application/
export GEM_HOME=/path/to/application/gems
export CLASSPATH=$(jruby -e 'puts Dir["lib/*.jar"].join(":")')

RAILS_ENV=production java -cp $CLASSPATH org.jruby.Main bin/rake -T

Также полезно, что гем jruby-jars может быть включен в ваш gemfile для установки версии jruby, которая включает warbler (я использовал gem 'jruby-jars', '1.7.0.preview2', так как 1.7.0 еще не был выпущен)

person yetanothersullivan    schedule 01.11.2012