基本上我可以部署到我的部署机器的唯一事情是JAR文件。我无法安装JRuby,也无法安装Glassfish或Tomcat。
是否可以将Rails应用程序(包括Rails,当然是出售的)打包到JAR文件中以便我可以
c:\my_server> java rails_app.jar
让它在JVM中运行WEBRick或Mongrel?
答案 0 :(得分:9)
我在一年前写了一篇关于如何将你的ruby源和jruby以及你想要的其他东西嵌入到一个jar文件中,然后用“java -jar myapp.jar”运行它的文章。
我猜它需要做一些工作来启动它,但它不应该太难。有了他们维基上的免费jruby文档,我想你可以用这种技术很容易地运行一个码头+战争的东西。
答案 1 :(得分:6)
我建议您结帐码头。 Embedding Jetty的过程非常简单,应该可以从当前的jar文件中为它提供servlet。我没有使用Ruby / Rails,所以我不确定那里是否有任何并发症。
通常可以将所有rails模板/模型嵌入到war文件中的jar中,以便在Tomcat上进行部署吗?如果是这样,那么你应该能够将嵌入式Jetty从你的单个jar中拉出来。
答案 2 :(得分:3)
可能有点陈旧,但Nick Sieger,前一个JRuby贡献者之一wrote about warbler。
Warbler是关于将Rails应用程序打包到.war文件中。现在我不是一个大家伙,所以我不确定你的.jar限制来自哪里。战争文件类似于罐子,但它们适用于整个网站或其他东西。
最糟糕的情况是,我非常确定JRuby wiki有关于在Java体系结构上运行的打包Rails应用程序的状态。了解相关信息符合他们的最佳利益。
答案 3 :(得分:1)
我认为你不能在JVM中运行Mongrel。尝试在没有Tomcat或Jetty的情况下运行任何类型的Web服务器可能比它的价值更麻烦。 jsight的答案看起来对这个问题很有帮助。如果你能做到这一点,这里是JRuby网站上关于运行JRuby on Rails in Tomcat的页面。
答案 4 :(得分:1)
您可能想尝试在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,
〜A
答案 5 :(得分:0)
我今天刚刚浏览了这个博客,如果有其他人让我知道的话,我打算尝试一下。
http://matthewkwilliams.com/index.php/2010/03/02/rails-jruby-in-a-jar/