2013-01-20 49 views
12

Play Framework 2: Read the application version defined in Build.scala的頂部答案中,建議應用程序版本號在conf/application.conf中指定,並通過play.api.Configuration加載到Build.scala中。我使用Play 2.1-RC2並獲得以下錯誤消息時建設:Play Framework 2.1:使用Build.scala中的play.api.Configuration

[error] [...]/project/Build.scala:7: object Configuration is not a member of package play.api 
[error] val conf = play.api.Configuration.load(new File(".")) 

我想這可能是由一個事實,即與播放2.1構建依賴關係必須被指定爲插件SBT引起的,play.api.Configuration不是一部分Play的SBT插件。我猜我必須在project/plugins.sbt中包含Play的核心庫,但我一直無法弄清楚。有任何想法嗎?

(注:本來使這個在原來的問題中留言,如果我有足夠的代表處點)

回答

24

我工作在2.1-RC2,如果你直接使用類型安全的配置庫,而播放的Configuration包裝。這是一個Java API,因此它的使用與this answer中描述的略有不同。

project/Build.scala導入庫:

import com.typesafe.config._ 

和手動加載從文件的配置。需要調用resolve()來解決替換問題。

val conf = ConfigFactory.parseFile(new File("conf/application.conf")).resolve() 

val appName = conf.getString("app.name") 
val appVersion = conf.getString("app.version") 
+0

This Works,thanks。對遲到的反應抱歉。 – user1995521

+2

小心!不要在play-2.1.x的'appName'中使用點和空格。或者打個招呼到'java.lang.ExceptionInInitializerError'。 – HEX

+0

@kapep:你想看看這個問題,並最終提出一些建議嗎? http://stackoverflow.com/q/21133830/1066240 – biesior

相關問題