使用grails创建独立应用程序

使用grails创建独立应用程序,grails,Grails,我想知道是否有一个工具可以创建我的grails项目的可演示版本。我可以在CD或U盘上分发的东西,可以在任何环境下运行 什么 附带一个启动应用程序的shell脚本 在系统上搜索空闲服务器端口(如果8080已在使用,则无错误消息) 启动jetty服务器 用我的应用程序启动标准浏览器 有人知道这样的工具吗?想到的最好的事情是在安装了grails的U盘上使用Linux发行版。您可以将应用程序导出为WAR文件,然后创建一个包含grails prod run WAR的脚本,以便在引导时执行。最后,您可以

我想知道是否有一个工具可以创建我的grails项目的可演示版本。我可以在CD或U盘上分发的东西,可以在任何环境下运行

什么

  • 附带一个启动应用程序的shell脚本
  • 在系统上搜索空闲服务器端口(如果8080已在使用,则无错误消息)
  • 启动jetty服务器
  • 用我的应用程序启动标准浏览器

有人知道这样的工具吗?

想到的最好的事情是在安装了grails的U盘上使用Linux发行版。您可以将应用程序导出为WAR文件,然后创建一个包含
grails prod run WAR
的脚本,以便在引导时执行。最后,您可以使用
firefoxlocalhost:port#/AppName

此选项的唯一缺点是需要从斗杆启动,这将产生一点延迟时间。然而,优点是您只需担心支持一个操作系统、启动时无端口扫描和简单性。

查看它使分发Grails应用程序的演示版本变得更加容易

“独立插件构建了一个可运行的JAR文件,其中嵌入了war 基于您的应用程序和嵌入式Tomcat 7实例构建 允许您构建可在任何计算机上运行的单个存档 通过运行Java-jar standalone.jar使用Java 5或更高版本 方便演示,甚至是低流量的轻量级安装 Grails应用程序。”

独立插件的完整文档如下

要准备jar文件

grails -Dgrails.env=demo build-standalone our_cool_demo.jar
要运行Grails应用程序(端口被指定为参数)

java-jar/path/to/jar\u name.jar cool\u演示localhost 9000


更新:

实际上有两个Grails独立插件:

  • 上述基于Tomcat7的插件
  • 该插件基于Jetty,工作方式类似

  • 还有一些基于Hudson和Winstone项目的选项,但没有Grails插件。下面是一些链接,其中包含更多信息:,

    Chris提出的答案对我的工作不起作用,但它为我提供了一个很好的起点: 创建这样一个独立的应用程序似乎并不难:

    • jetty是一个很好的起点:只需将jetty文件放到U盘上,然后通过将.war文件放到jetty的webapps目录中来部署grails应用程序
    • 创建一个搜索两个(!)空闲端口的小groovy脚本。你需要第二个来再次停止服务器
    • groovy脚本可以启动和停止服务器
    • 编译脚本以避免在目标机器上安装groovy

    就这样。我想我会在找到更多时间后发布更多详细信息…

    Hm。也许linux与vmware player捆绑在一起。。。但这意味着iz对于一张CD来说太大了…@Ralf-但它可能适合DVD。还有另一个基于jetty的独立插件可能会工作。更多信息,请参见上面更新的答案。也请参见下面我的答案。这两个插件都不适合我,但都是一个很好的起点。我已经成功地使用了这两个插件,但也无法让它们在一些项目中工作。我猜这取决于项目的复杂性、依赖性和使用的插件。独立插件刚刚得到更新。所以现在所有的问题都应该解决了。将尝试并报告。@克里斯:嗨,我有一点问题要理解所有这些东西,你能不能再多描述一点来衡量你是否假设目标机器上已经有了所需的JVM,或者你正在寻找一个真正的独立服务器应用程序?一个真正的独立应用程序会很好,但我想假设JVM已经可用就可以了。