使用dist taks在生产模式下运行Play应用程序

问题描述 投票:0回答:1

我正在使用“ dist”任务来生成我的游戏应用程序的分发。 但是,如果我解压缩生成的工件,则可以在bin /目录中访问由“ dist”任务生成的bash文件。 脚本的最后一行是:运行“ $ @”

我在正式的Play Framework文档中看到,“ run”命令不应在生产模式下使用,建议的方法是生成带有任务“ dist”的发行版

如果在生产模式下不建议使用“ dist”生成一个使用“ run”命令的bash脚本,为什么?

我之所以这样问是因为,当我在生产环境中部署应用程序时,第一个请求很慢……似乎是开发行为。 但是我正在使用'dist'命令。

我将不胜感激任何帮助。

谢谢。

deployment playframework
1个回答
0
投票

您正在混合两种不同的东西。

Play文档中所述的run命令是一个SBT命令,它将以开发人员模式启动您的应用。 因此,要使用该命令,您必须使用激活器或sbt(例如: ./activator run )。

您在该脚本中看到的run是bash函数(在上面稍作定义),它将以生产模式启动您的应用程序。 该功能的一些摘要:

# Actually runs the script.
run() {
  # TODO - check for sane environment
  # process the combined args, then reset "$@" to the residuals
  # (...)
  execRunner "$java_cmd" \
    ${java_opts[@]} \
    "${java_args[@]}" \
    -cp "$(fix_classpath "$app_classpath")" \
    "${mainclass[@]}" \
    "${app_commands[@]}" \
    "${residual_args[@]}"

  (...)
}

因此,如果使用此脚本运行您的应用程序,它将在生产模式下启动。

© www.soinside.com 2019 - 2024. All rights reserved.