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

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

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

c:\my_server> java rails_app.jar

и запустить WEBRick или Mongrel в JVM?

Ответ 1

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

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

Ответ 2

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

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

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

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

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

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

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

BR,
~ А