播放 2.3.x - "build.sbt" 中 "application.conf" 的应用程序名称

Play 2.3.x - app name from "application.conf" in "build.sbt"

使用 Play 2.1.x 我能够从 "project/build.scala" 中的 "conf/application.conf" 中获取应用程序名称和版本,如下所示:

import sbt._
import Keys._
import play.Project._
import com.typesafe.config._

object ApplicationBuild extends Build {
  val conf = ConfigFactory.parseFile(new File("conf/application.conf")).resolve()
  val appName = conf.getString("application.name")
  val appVersion = conf.getString("application.version")
 ....

我正在迁移到 Play 2.3.8,我正试图找到一个类似的解决方案来获取 "built.sbt" 中的名称和版本。 我查看了迁移指南和类似问题,但 none 似乎有效。

我该怎么做?

我已经在我的 Play 项目(版本 2.3.8)上创建了几个测试,看起来你在定位这个文件时遇到了问题。

当我尝试读取文件 application.conf(仅用于测试目的)时 - 它给了我 FileNotFoundException,但 Config 突然忽略了这个问题。无论如何,在我的情况下,一切都很好(conf/application.conf)-我能够检索到我想要的任何密钥。

因此,我建议检查您是否可以正确定位文件 - 例如,在第一次尝试时,您可以将路径替换为绝对路径,以检查解析是否正常,然后尝试修复位置问题。

我在 Play 2.3.8 中的项目运行良好,如下所示。

import PlayKeys._
import com.typesafe.config._

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

name := conf.getString("application.name")

version := conf.getString("application.version")