Play Framework 2.1:在Build.scala中使用play.api.Configuration

12

Play Framework 2: Read the application version defined in Build.scala 的最佳回答中,建议将应用程序版本号指定在conf/application.conf中,并通过play.api.ConfigurationBuild.scala中加载。我正在使用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插件的一部分造成的。我猜我必须在project/plugins.sbt中包含Play的核心库,但我还没有找到方法。有什么想法吗?

1个回答

24

如果您直接使用typesafe的配置库而没有使用Play的Configuration包装器,我可以在2.1-RC2中工作。它是一个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")

这个可以,谢谢。回复晚了,抱歉。 - user1995521
3
小心!在 play-2.1.x 中的 appName 不要使用点或空格。否则,你将会与 java.lang.ExceptionInInitializerError 打招呼。 - HEX
@kapep:你想看看这个问题并最终提出建议吗?https://dev59.com/1nvaa4cB1Zd3GeqPB1JA - biesior

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接