【问题标题】:Create standalone application with grails使用 grails 创建独立应用程序
【发布时间】:2012-04-29 08:16:52
【问题描述】:

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

某事

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

有人知道这样的工具吗?

【问题讨论】:

  • 您是假设您已经在目标机器上安装了所需的 JVM,还是在寻找真正的独立服务器应用程序?
  • 一个真正的独立应用程序会很棒,但我想假设 JVM 已经可用是可以的。

标签: grails


【解决方案1】:

查看 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 并以类似的方式工作

还有一些基于 Hudson 和 Winstone 项目的选项,但没有 Grails 插件。以下是一些包含更多信息的链接:Build executable war using grails, maven and jettyExecutable WARs with JettyWinstone

【讨论】:

  • 还有另一个基于 jetty 的独立插件可以工作。有关更多信息,请参阅上面的更新答案。
  • 请在下方查看我的回答。这两个插件都不适合我,但是是一个很好的起点。
  • 我已经成功使用了这两个插件,但也无法让它们与某些项目一起使用。我猜这取决于项目的复杂性、依赖项和使用的插件。
  • 独立插件刚刚得到更新。所以现在应该解决所有问题。会试一试并报告。
  • @Chris : 嗨,我有点想了解所有这些东西,你能不能再给我描述一下
【解决方案2】:

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

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

【讨论】:

  • 嗯。也许 linux 与 vmware 播放器捆绑在一起......但这意味着 iz 对于 CD 来说太大了......
  • @Ralf - 但它可能适合 DVD
【解决方案3】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多