使用grails创建独立应用程序

时间:2012-04-29 08:16:53

标签: grails

我想知道是否有一个工具可以创建我的grails项目的可演示版本。我可以在CD或USB记忆棒上分发的东西,可以在每个环境中运行。

的东西
  • 附带一个shell脚本来启动应用程序
  • 在系统上搜索空闲服务器端口(如果8080已在使用中,则不会显示错误消息)
  • 启动一个码头服务器
  • 使用我的应用程序启动标准浏览器

有人知道这样的工具吗?

3 个答案:

答案 0 :(得分:15)

查看 standalone plugin ,这样可以更轻松地分发Grails应用的演示版。

  

独立插件构建一个带有嵌入式战争的可运行JAR文件   从您的应用程序和嵌入式Tomcat 7实例构建。这个   允许您构建一个可以在任何计算机上运行的存档   运行java -jar standalone.jar,使用Java 5或更高版本。这可以   方便演示或甚至非常轻量级的低流量安装   Grails应用程序。“

独立插件的完整文档是here

准备jar文件......

grails -Dgrails.env=demo build-standalone our_cool_demo.jar

运行Grails应用程序(将端口指定为参数)...

java -jar /path/to/jar_name.jar cool_demo localhost 9000


<强>更新

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

  1. 上述'standalone'插件基于 Tomcat7
  2. 'jetty-standalone'插件基于 Jetty 并以类似的方式工作
  3. 还有一些基于Hudson和Winstone项目的选项,但没有Grails插件。以下是一些包含更多信息的链接: Build executable war using grails, maven and jettyExecutable WARs with JettyWinstone

答案 1 :(得分:2)

最让人想到的是在安装了grails的USB记忆棒上使用Linux发行版。您可以将应用程序导出为WAR文件,然后创建包含grails prod run-war的脚本以在引导时执行。最后,您可以使用firefox localhost:port#/AppName

打开Firefox

此选项的唯一缺点是你需要从操纵杆启动,这将产生一些延迟时间。但是,优点是你只需要担心支持一个操作系统,启动时没有端口扫描和简单。

答案 2 :(得分:1)

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

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

就是这样。我想当我找到更多时间时,我会发布更多细节......