我可以在play框架的application.conf中使用groovy吗?

时间:2012-03-21 13:20:28

标签: groovy playframework

我在this comment和其他地方看到过,有一种方法可以在application.conf中使用groovy标签来进行更动态的配置,但我还没有看到任何描述这个的真实文档。

具体来说,我对根据主机名和系统属性设置配置变量感兴趣。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

所以我终于看了t he code that reads the conf file。对groovy标签的支持很少,基本上允许以下用法:

  • ${application.path}被插值为当前应用程序基本路径
  • ${play.path}被插入为播放框架基本路径
  • 根据系统属性检查${key}形式的任何其他字符串,如果不可用,则根据环境变量进行检查

这可以与@include功能一起使用来实现我的用例:

  • 在conf目录下,我有通常的application.conf,以及specific/dev001.confspecific/test001.confspecific/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文件。