我正在使用' dist'生成我的播放应用程序分发的任务。但是如果我解压缩生成的工件,在bin /目录中我可以访问由' dist'生成的bash文件。任务。脚本的最后一行是:run" $ @"
我在官方的Play Framework文档中看到'运行'命令不应该在生产模式下使用,建议的方法是使用任务生成分发' dist'
为什么' dist'正在生成一个使用'运行'如果不建议在生产模式下使用命令?
我问这个,因为当我在生产中部署我的应用程序时,第一个请求很慢......似乎是开发行为。但我正在使用' dist'命令。
我将不胜感激。
谢谢。
答案 0 :(得分:0)
你正在混合两种不同的东西。
Play文档中声明的run
命令是一个SBT命令,它将以开发模式启动您的应用程序。因此,要使用该命令,您必须使用activator或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[@]}"
(...)
}
因此,如果您使用此脚本运行您的应用程序,它将以生产模式启动。