【问题标题】:How to start Play application without SBT plugin?如何在没有 SBT 插件的情况下启动 Play 应用程序?
【发布时间】:2014-10-09 03:15:14
【问题描述】:

上下文。

我正在寻找一种从命令行工具中启动 Play 应用程序的方法。这需要取决于需要执行的任务,即 OAuth 授权。 当用户选择任务时,该工具应生成一个完成用户身份验证的浏览器窗口。完成后,其余的授权过程将在 Play 应用程序中继续。获取安全令牌后,Play 应用需要关闭。

问题。

有没有不使用 SBT 插件(由 Typesafe 提供)启动(和关闭)Play 应用程序的简单方法?

【问题讨论】:

  • 我正在寻找一种从代码中的任何位置启动 Play 应用程序的方法,就像在套接字上侦听一样简单——在一行代码中。

标签: scala playframework sbt


【解决方案1】:

你可能想看看ProductionDist

在 SBT 中运行任务 dist(或来自 CLI activator distsbt dist)。它将创建一个包含您的应用程序及其依赖项的 ZIP,以及 `bin/' 子目录中的运行脚本。

从通过提取 ZIP 内容创建的目录中,您可以运行执行提供的脚本的应用程序:./bin/my-app(假设您的应用程序名为“my-app”)。

它还将创建一个名为 RUNNING_PID 的文件,其中包含运行您的应用程序的 JVM 的 PID(进程 ID),因此如果在后台(从 CLI 中分离),您可以正确地终止它:

kill `cat /path/to/RUNNING_PID`

【讨论】:

  • 虽然我很欣赏这种解决方法,但它仍然涉及使用 SBT 插件。我正在寻找一种从代码中的任何位置启动 Play 应用程序的方法,就像在套接字上侦听一样简单——在一行代码中。
  • 不,它只使用 SBT 构建 dist,然后是独立的。
猜你喜欢
  • 2021-09-26
  • 1970-01-01
  • 2014-06-29
  • 2015-01-28
  • 2019-02-19
  • 1970-01-01
  • 2011-11-03
  • 2017-02-02
  • 2017-09-06
相关资源
最近更新 更多