我在this comment和其他地方看到过,有一种方法可以在application.conf中使用groovy标签来进行更动态的配置,但我还没有看到任何描述这个的真实文档。
具体来说,我对根据主机名和系统属性设置配置变量感兴趣。
我该怎么做?
答案 0 :(得分:2)
所以我终于看了t he code that reads the conf file。对groovy标签的支持很少,基本上允许以下用法:
${application.path}
被插值为当前应用程序基本路径${play.path}
被插入为播放框架基本路径${key}
形式的任何其他字符串,如果不可用,则根据环境变量进行检查这可以与@include
功能一起使用来实现我的用例:
application.conf
,以及specific/dev001.conf
,specific/test001.conf
,specific/prod001.conf
等。每个特定文件都包含特定的配置主机。application.conf
我有一行说@include.hostspecific=specific/${HOSTNAME}.conf
play run
之前,我确保设置HOSTNAME环境变量。使用Linux + bash:
export HOSTNAME=$(uname -n)
play run
在Windows上:
FOR /F "usebackq" %i IN (`hostname`) DO SET HOSTNAME=%i
play run
请注意,如果缺少包含文件,则不会加载播放,所以我现在需要为我运行它的每台机器配置一个conf文件。