7

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

什么东西

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

有人知道这样的工具吗?

4

3 回答 3

15

查看独立插件,它可以更轻松地分发 Grails 应用程序的演示版本。

Standalone 插件构建了一个可运行的 JAR 文件,其中包含从您的应用程序构建的嵌入式战争和一个嵌入式 Tomcat 7 实例。这允许您构建一个单一的存档,该存档可以通过运行 java -jar Standalone在任何具有 Java 5 或更高版本的计算机上运行.jar。这对于演示甚至是非常轻量级的低流量 Grails 应用程序安装非常方便。”

独立插件的完整文档在这里

准备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. 上述基于Tomcat7独立”插件
  2. ' jetty-standalone '插件,它基于Jetty并以类似的方式工作

还有一些基于 Hudson 和 Winstone 项目的选项,但没有 Grails 插件。以下是一些包含更多信息的链接:使用 grails、maven 和 jetty 构建可执行战争,使用JettyWinstone的可执行战争

于 2012-04-29T19:34:26.030 回答
2

想到的最好的事情是在安装了 grails 的 USB 记忆棒上使用 Linux 发行版。您可以将应用程序导出为 WAR 文件,然后创建一个包含grails prod run-war在启动时执行的脚本。最后,您可以使用以下命令打开 Firefoxfirefox localhost:port#/AppName

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

于 2012-04-29T12:28:22.597 回答
1

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

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

而已。我想我会在找到更多时间时发布更多详细信息...

于 2012-05-03T06:17:44.323 回答