包含其他配置文件时是否可以使用环境变量替换?
我想有类似的东西:
include "${HOME}/.foo/credentials.conf"
Configuration documentation提及查找资源和包含替换但未提及。
这有效:
include "/home/me/.foo/credentials.conf"
我的HOME设置正确。
但到目前为止,include "${HOME}/.foo/credentials.conf"
的所有尝试都失败了
背景:
我故意想要将凭证和其他敏感数据保留在我们的代码库之外,但是可以将它们用于本地开发环境以进行测试。我知道使用外部存储的更复杂的解决方案,如此处提示Playframework 2 - Storing your credentials,我们在实时和预览环境中使用类似的东西,但这些不适合本地开发设置。
另一种方法是将凭证文件包含在代码库中,但是使用git ignore来防止推送它,但它是脆弱的解决方案,风险是有人最终会推送它并破坏凭据。
答案 0 :(得分:1)
TBH我甚至无法包含具有绝对路径/home/me...
的文件无论如何,这对您有用的方法只是使用the same doc中描述的替代配置文件:
在文件 /home/me/.foo/credentials.conf 中,您需要包含application.conf
- Play会将其回退到类路径中的文件(这是在VCS下):
include "application.conf"
myCredentials.user="Espinosa"
myCredentials.password="fooBar123"
然后run
/ start
您的应用在本地使用此配置文件:
play -Dconfig.file=${HOME}/.foo/credentials.conf ~run
就是这样。
注意:当然在IDE中设置此添加更容易(例如IntelliJ:运行> 编辑配置)或编写包含此命令的shell脚本