玩!框架 - 使用Build.scala构建build.sbt

use*_*159 4 scala sbt playframework

我正在尝试将各种设置与我的Play中的构建定义分开!2.1申请.

我在build.sbt中定义了一些设置,如下所示:

name := "My Project"
version := 1.0
Run Code Online (Sandbox Code Playgroud)

如何在Build.scala中重用这些值?

object ApplicationBuild extends Build {

  val main = 
    // Doesn't compile since name and version are SettingKeys, not Strings
    play.Project(name, version).settings(
      // ...
    )

}
Run Code Online (Sandbox Code Playgroud)

非常感谢!

Iva*_*ith 6

您可以使用<<=而不是:=如果您需要访问密钥(<+=而不是+=).在这种情况下,我们希望从全局范围中提取版本和名称.

val main = play.Project(appName, appVersion, appDependencies).settings(
  version <<= (version in Global)  { v => v} ,
  name <<= (name in Global) { n => n } 
)
Run Code Online (Sandbox Code Playgroud)

虽然这是默认范围,但在这种情况下我们可以省略范围.

val main = play.Project(appName, appVersion, appDependencies).settings(
  version <<= (version)  { v => v} ,
  name <<= (name) { n => n } 
)
Run Code Online (Sandbox Code Playgroud)

更短的版本就是这么简单

val main = play.Project(appName, appVersion, appDependencies).settings(
  version <<= version ,
  name <<= name
)
Run Code Online (Sandbox Code Playgroud)

请注意,您的build.sbt文件必须位于根目录中,而不是project/目录中.