我正在使用“ dist”任务来生成我的游戏应用程序的分发。 但是,如果我解压缩生成的工件,则可以在bin /目录中访问由“ dist”任务生成的bash文件。 脚本的最后一行是:运行“ $ @”
我在正式的Play Framework文档中看到,“ run”命令不应在生产模式下使用,建议的方法是生成带有任务“ dist”的发行版
如果在生产模式下不建议使用“ dist”生成一个使用“ run”命令的bash脚本,为什么?
我之所以这样问是因为,当我在生产环境中部署应用程序时,第一个请求很慢……似乎是开发行为。 但是我正在使用'dist'命令。
我将不胜感激任何帮助。
谢谢。
您正在混合两种不同的东西。
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[@]}"
(...)
}
因此,如果使用此脚本运行您的应用程序,它将在生产模式下启动。