Можно ли скомпилировать приложение 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,
~ А
Ответ 6
Я просто наткнулся на этот блог сегодня, и я намереваюсь дать ему попробовать, если кто-нибудь еще сообщит мне
http://matthewkwilliams.com/index.php/2010/03/02/rails-jruby-in-a-jar/