Play Framework 2.1: использование play.api.Configuration в Build.scala

В верхнем ответе на Play Framework 2: Читать версия приложения, определенная в Build.scala, рекомендуется указывать номер версии приложения в conf/application.conf и загружать в Build.scala - play.api.Configuration. Я использую Play 2.1-RC2 и получаю следующее сообщение об ошибке при сборке:

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

Я думаю, это может быть вызвано тем фактом, что зависимости сборки Play 2.1 должны быть указаны как плагины для SBT, а play.api.Configuration не является частью плагина Play SBT. Я предполагаю, что мне нужно включить основные библиотеки Play в project/plugins.sbt, но я не смог понять, как это сделать. Есть идеи?

(примечание: сделал бы это комментарием в исходном вопросе, если бы у меня было достаточно очков)


person user1995521    schedule 20.01.2013    source источник


Ответы (1)


Я работаю в 2.1-RC2, если вы используете библиотеку конфигурации typesafe напрямую, без оболочки Play Configuration. Это Java API, поэтому он используется немного иначе, чем описано в этом ответе.

В 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")
person kapex    schedule 29.01.2013
comment
Это работает, спасибо. Приносим извинения за поздний ответ. - person user1995521; 10.10.2013
comment
Будь осторожен! Не используйте точки и пробелы в appName play-2.1.x. Или поздоровайтесь с java.lang.ExceptionInInitializerError. - person HEX; 30.10.2013
comment
@kapep: вы хотели бы увидеть этот вопрос и в конечном итоге что-то предложить? stackoverflow.com/q/21133830/1066240 - person biesior; 15.01.2014