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

基本上我唯一可以部署到我的部署机器的是JAR文件。 我无法安装JRuby,也无法安装Glassfish或Tomcat。

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

c:\my_server> java rails_app.jar 

让它在JVM中运行WEBRick或Mongrel?

我建议您结帐Jetty。 嵌入Jetty的过程非常简单,应该可以从当前的jar文件中为它提供servlet。 我没有使用Ruby / Rails,所以我不确定那里是否有任何复杂情况。

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

我在一年前写了一篇关于如何将你的ruby源和jruby以及你想要的其他东西嵌入到一个jar文件中然后用“java -jar myapp.jar”运行它的文章。

我猜它需要做一些工作来启动它,但它不应该太难。 有了他们wiki的免费jruby文档,我猜你可以用这种技术很容易地运行一个docker+战争的东西。

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

它可能有点过时了,但是JRuby贡献者之一Nick Sieger不久前曾写过关于鸣鸟的文章。

Warbler是关于将Rails应用程序打包成.war文件。 现在我不是一个大家伙,所以我不确定你的.jar限制来自哪里。 战争文件类似于jar子,但它们适用于整个网站或其他东西。

最糟糕的情况是,我非常确定JRuby wiki有关于在Java体系结构上运行的打包Rails应用程序的状态。 了解相关信息符合他们的最佳利益。

我不认为你可以在JVM中运行Mongrel。 试图在没有Tomcat或Jetty的情况下运行任何类型的Web服务器可能比它的价值更麻烦。 jsight的回答看起来对这个问题很有帮助。 如果你可以做到这一点,这里是JRuby网站上关于在Tomcat中运行JRuby on Rails的页面。

您可能想尝试在JRuby邮件列表/论坛( http://xircles.codehaus.org/lists/user@jruby.codehaus.org )上提出这个问题。

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

您可能想要做的另一件事是捆绑winstone可嵌入servlet容器和jruby AND rails并使用jarjar创建一个大jar子。 您可以构建一个ant构建文件来构建一个包含rails应用程序的BIG jar。 使用这种方法的一个项目是hudson( https://hudson.dev.java.net/ ) – 你可能会得到一些关于如何去做的信息。

BR,
〜一

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

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