是否可以将Rails应用程序编译为Java VM JAR文件?

时间:2020-03-06 14:40:55  来源:igfitidea点击:

本质上,我可以部署到部署计算机上的唯一一件事就是一个JAR文件。我无法安装JRuby,也无法安装Glassfish或者Tomcat。

是否可以将Rails应用程序(当然包括Rails,已打包)打包到JAR文件中,以便我可以

c:\my_server> java rails_app.jar

并使其在JVM中运行WEBRick或者Mongrel?

解决方案

我建议我们结帐码头。嵌入Jetty的过程非常简单,可以从当前的jar文件中为其提供servlet。不过,我还没有使用过Ruby / Rails,所以我不确定那里是否存在任何复杂性。

通常是否可以将所有的rails模板/模型嵌入war文件中的jar中,以便在Tomcat上进行部署?如果是这样,那么我们也应该能够获得嵌入式Jetty并将其从单个jar中拉出。

我认为我们不能在JVM中运行Mongrel。尝试在没有Tomcat或者Jetty的情况下运行任何类型的Web服务器可能比它值得的麻烦更多。 jsight的答案对于解决该问题很有帮助。如果可以做到这一点,那么这是JRuby网站上的有关在Tomcat中运行JRuby on Rails的页面。

一年前,我写了一篇文章,介绍如何将jruby和所需的其他所有源嵌入到ruby源中,然后使用" java -jar myapp.jar"运行它。

我猜它需要做一些工作才能使其成为引导轨道,但是应该不会太难。通过他们的Wiki上免费的jruby文档,我想我们可以使用此技术相当轻松地进行码头+战争。

文章在这里:
http://blog.kesor.net/2007/08/14/jruby-in-a-jar/

我们可能想尝试在JRuby邮件列表/论坛(http://xircles.codehaus.org/lists/[email protected])上问这个问题。

有人会做同样事情的另一个地方是glassfish邮件列表

我们可能还想做的另一件事是,将winstone可嵌入的servlet容器与jruby和rails捆绑在一起,并使用jarjar创建一个大jar。我们也许可以构建一个ant生成文件来构建这样的BIG jar,其中还包括rails应用程序。 hudson(https://hudson.dev.java.net/)是使用此方法的一个项目-我们可能会获得一些有关如何执行此操作的信息。

BR
〜A

可能有些过时了,但是JRuby贡献者之一Nick Sieger不久前写了一篇关于莺的文章。

Warbler即将将Rails应用打包到.war文件中。现在我不是Java的大人物,所以我不确定.jar限制来自何处。 war文件类似于jars,但它们用于整个网站或者其他内容。

最糟糕的情况是,我很确定JRuby Wiki包含有关在Java体系结构上运行的Rails应用程序打包状态的信息。拥有相关信息符合他们的最大利益。

我今天刚刚浏览了这个博客,如果有人让我知道,我打算尝试一下

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