Можно ли скомпилировать приложение Rails в файл JAR Java VM? - PullRequest
11 голосов
/ 24 сентября 2008

По сути, единственное, что я могу развернуть на своем компьютере для развертывания, это файл JAR. Я не могу установить JRuby, а также не могу установить Glassfish или Tomcat.

Можно ли упаковать приложение Rails (включая Rails, конечно же, от производителя) в файл JAR, чтобы я мог сделать

c:\my_server> java rails_app.jar

и он запускает WEBRick или Mongrel в JVM?

Ответы [ 6 ]

9 голосов
/ 24 сентября 2008

Год назад я написал статью о том, как встроить ваши источники ruby ​​с помощью jruby и всего, что вы хотите, в один файл jar, а затем запустить его с помощью "java -jar myapp.jar".

Мне понадобится немного работы, чтобы заставить его загружаться, но это не должно быть слишком сложно. И с бесплатной документацией jruby на их вики, я думаю, вы можете довольно легко запустить игру «Пристань + война» с помощью этой техники.

Статья здесь: http://blog.kesor.net/2007/08/14/jruby-in-a-jar/

6 голосов
/ 24 сентября 2008

Я бы порекомендовал вам оформить заказ на причал. Процесс Embedded Jetty удивительно прост, и должна быть возможность передать ему ваши сервлеты из вашего текущего файла JAR. Однако я не использовал Ruby / Rails, поэтому не уверен, есть ли там какие-либо сложности.

Можно ли встраивать все ваши шаблоны / модели rails в банку внутри файла war для развертывания на Tomcat? Если это так, то у вас должна быть возможность встроить Jetty, чтобы вытащить его из одной банки.

3 голосов
/ 25 сентября 2008

Возможно, это немного устарело, но Ник Зигер, один из участников JRuby некоторое время назад писал о warbler .

Славка предназначена для упаковки приложения Rails в файл .war. Теперь я не большой Java-парень, поэтому я не уверен, откуда взялись ваши ограничения .jar. военные файлы похожи на файлы jar, но они предназначены для целых веб-сайтов или чего-то в этом роде.

В худшем случае, я почти уверен, что JRuby wiki содержит информацию о состоянии упаковки приложений Rails, запускаемых на архитектурах Java. В их интересах иметь информацию об этом.

1 голос
/ 25 сентября 2008

вы можете попробовать задать этот вопрос в списке рассылки / форуме JRuby (http://xircles.codehaus.org/lists/user@jruby.codehaus.org).

Другое место, где кто-то сделал бы то же самое, это список рассылки Glassfish

Еще одна вещь, которую вы, возможно, захотите сделать, это связать встраиваемый контейнер сервлетов winstone, jruby и rails и использовать jarjar для создания одной большой банки. Возможно, вы сможете собрать файл сборки ant для создания такого БОЛЬШОГО jar-файла, который также включает ваше приложение rails. Одним из проектов, который использовал этот подход, является hudson (https://hudson.dev.java.net/) - вы можете получить некоторую информацию о том, как это сделать.

BR
~ A

1 голос
/ 24 сентября 2008

Я не думаю, что вы можете запустить Mongrel в JVM. Попытка запустить любой веб-сервер без Tomcat или Jetty, вероятно, доставляет гораздо больше хлопот, чем стоит. jsight ответ кажется полезным для этой проблемы. Если вы можете зайти так далеко, вот страница на сайте JRuby о запуске JRuby on Rails в Tomcat .

0 голосов
/ 07 октября 2010

Я только что наткнулся на этот блог сегодня, и я собираюсь попробовать, если кто-то еще дал мне знать

http://matthewkwilliams.com/index.php/2010/03/02/rails-jruby-in-a-jar/

...