Можно ли скомпилировать приложение Rails в JAR-файл Java VM?

StackOverflow https://stackoverflow.com/questions/129072

Вопрос

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

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

c:\my_server> java rails_app.jar

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

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

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

Еще одно место, где кто-то мог бы сделать то же самое, — это список рассылки glassfish.

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

БР,

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top