2011-05-20 34 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

相關問題