2011-05-20 29 views
13

有什么方法可以在游戏中使用环境变量! application.conf文件?事情是这样的:有什么方法可以在playframework的application.conf中替换环境变量?

%prod.db.url=${env.DATABASE_JDBC_URL} 
%prod.db.driver=org.postgresql.Driver 
%prod.jpa.ddl=validate 

我不想硬编码的URL在我application.conf,因为它包含了开发者不应该有访问凭据。

+1

我不明白你如何隐藏这些信息?如果你有权访问env变量,这意味着你可以读取它的值,不是吗? – mandubian 2011-05-20 16:32:54

回答

8

${ENV_VARIABLE_KEY}确实解决了在您的环境中设置的任何变量。你不必指定“env”。前缀除非它是你的密钥的一部分。

+1

是的。这是我发布原始问题后添加的新功能。很酷。 – 2011-12-28 05:43:31

3

我有同样的问题。我的解决办法:

  • 让application.conf与地方发展唯一属性,并将其存储在VCS(SVN,Git的,...)为您的开发团队
  • 在application.conf文件中添加一行:“@include.prod = prod.conf”
  • prod.conf文件只包含%prod。*属性
  • 直接在prod服务器上创建prod.conf文件(或将其存储在与您的应用程序不同的VCS中,只允许人们读/写它)

它适合我。

前:20迈2011 21时09分16秒play.Logger提醒注意:缺少包括:

应用程序启动时它只是增加了开发团队的消息@ include.prod

真的不是问题。只是通知你的开发团队,这个消息是不是一个问题,在application.conf不删除“@ include.prod”行

希望它可以帮助内$ {}

12

所有变量使用如下得到解决来源:

  • $ {} application.path相当于Play.applicationPath.getAbsolutePath()
  • $ {} play.path相当于Play.frameworkPath.getAbsolutePath()
  • 任何其他来自系统。的getProperty。

因此,您可以将这些添加为-Dkey =名称参数启动时播放!与您的环境特定的秘密凭据。

+0

我尝试添加第一个项目符号点,但是发生运行时异常:'无法将替换解析为值:$ {application.path}' – 2013-10-31 02:28:45

+0

thx very mach;) – Lola 2014-11-10 13:30:13

相关问题