使用不同的配置文件构建 Scala Play 应用程序
Build Scala Play app using different config file
我有一个使用 sbt 构建的 Scala Play 应用程序。
当我使用 sbt dist
命令构建包时,这将导致在 /target/universal
路径中部署存档。问题是我有 3 个配置文件:
- application.conf
- dev.conf
- prod.conf
如果我尝试 运行 sbt dist -Dconfig.resource=prod.conf
,我得到一个错误:
[error] Expected ID character
[error] Not a valid command: prod (similar: stopProd, runProd, reload)
[error] Expected project ID
[error] Expected configuration
[error] Expected ':' (if selecting a configuration)
[error] Expected key
[error] Not a valid key: prod (similar: products, projectId, project-id)
[error] prod.conf
即使我使用引号或 -Dconfig.file
,结果也是一样的。我哪里错了?谢谢
late edit:
sbt dist
将构建 bin/*.bat
个文件,但其余文件将保持未构建状态。所以,我认为如果我选择这个 .zip
解决方案,所有环境类型(dev、stage、prod)的包都是相同的,但是我可以在 运行 命令时选择配置文件开始申请:
例如,对于产品我可以使用:
nohup ./app-name-1.0/bin/app-name -J-Xms8g -J-Xmx8g -Dconfig.resource=prod.conf -Dhttp.port=7777</dev/null>> logfile.log 2>&1 &
其中 -Dconfig.resource=prod.conf
在 post 中制作我想要的东西。
dist 命令不带配置参数,因此您收到的错误不是有效命令。
您可以使用系统 属性 来指定配置文件 https://www.playframework.com/documentation/2.8.x/ConfigFile。
这允许您为生产环境加载不同的文件
在 scala-sbt.org 上找到了 sbt-native-packager
的教程,但遇到了奇怪的错误。
目前,为构建为 .bat
文件的 sbt
项目使用不同配置文件的唯一解决方案是为启动命令指定配置文件,我在上面指定的方式 (-Dconfig.resource=prod.conf
):
nohup ./path -J-Xms8g -J-Xmx8g -Dconfig.resource=prod.conf -Dhttp.port=7777</dev/null>>
因此,第一步是使用 sbt dist
创建 zip 包,而不考虑配置文件。然后,在服务器上解压文件,使用命令启动应用程序。
我有一个使用 sbt 构建的 Scala Play 应用程序。
当我使用 sbt dist
命令构建包时,这将导致在 /target/universal
路径中部署存档。问题是我有 3 个配置文件:
- application.conf
- dev.conf
- prod.conf
如果我尝试 运行 sbt dist -Dconfig.resource=prod.conf
,我得到一个错误:
[error] Expected ID character
[error] Not a valid command: prod (similar: stopProd, runProd, reload)
[error] Expected project ID
[error] Expected configuration
[error] Expected ':' (if selecting a configuration)
[error] Expected key
[error] Not a valid key: prod (similar: products, projectId, project-id)
[error] prod.conf
即使我使用引号或 -Dconfig.file
,结果也是一样的。我哪里错了?谢谢
late edit:
sbt dist
将构建 bin/*.bat
个文件,但其余文件将保持未构建状态。所以,我认为如果我选择这个 .zip
解决方案,所有环境类型(dev、stage、prod)的包都是相同的,但是我可以在 运行 命令时选择配置文件开始申请:
例如,对于产品我可以使用:
nohup ./app-name-1.0/bin/app-name -J-Xms8g -J-Xmx8g -Dconfig.resource=prod.conf -Dhttp.port=7777</dev/null>> logfile.log 2>&1 &
其中 -Dconfig.resource=prod.conf
在 post 中制作我想要的东西。
dist 命令不带配置参数,因此您收到的错误不是有效命令。 您可以使用系统 属性 来指定配置文件 https://www.playframework.com/documentation/2.8.x/ConfigFile。 这允许您为生产环境加载不同的文件
在 scala-sbt.org 上找到了 sbt-native-packager
的教程,但遇到了奇怪的错误。
目前,为构建为 .bat
文件的 sbt
项目使用不同配置文件的唯一解决方案是为启动命令指定配置文件,我在上面指定的方式 (-Dconfig.resource=prod.conf
):
nohup ./path -J-Xms8g -J-Xmx8g -Dconfig.resource=prod.conf -Dhttp.port=7777</dev/null>>
因此,第一步是使用 sbt dist
创建 zip 包,而不考虑配置文件。然后,在服务器上解压文件,使用命令启动应用程序。