1

我正在使用带有 SBT 0.13 的 Play 2.2。SBT 0.13 引入了我一直在使用的名为 autoSettings ( http://www.scala-sbt.org/0.13.0/docs/Community/ChangeSummary_0.13.0.html#control-over-automatically-added-settings ) 的新功能与我的项目定义,例如:

lazy val projectA = Project(id="projectA", base=file(".")) .autoSettings(userSettings, allPlugins, sbtFiles(file("../common.sbt")), defaultSbtFiles)

但是我正在努力将它与 Play 项目一起使用。当我将它与 Play 项目一起使用时,出现错误:

错误:值 autoSettings 不是 Seq[sbt.Setting[_]] 的成员

我的 Play 项目定义是:

play.Project.playScalaSettings.autoSettings(userSettings, allPlugins, sbtFiles(file("../common.sbt")), defaultSbtFiles)

我是在 Play 项目中没有正确使用它,还是在 Play 项目中尚不支持?

4

1 回答 1

1

在 build.sbt 之上添加:

import AddSettings._

在 build.sbt 中添加:

lazy val main = Project(id="main", base=file(".")).autoSettings(userSettings, allPlugins, sbtFiles(file("../common.sbt")), defaultSbtFiles)

或者把它全部放在 project/Build.scala

import sbt._
import Keys._
import AddSettings._

object Build extends Build {
  lazy val main = Project(id="main", base=file(".")).autoSettings(userSettings, allPlugins, sbtFiles(file("../common.sbt")), defaultSbtFiles)
}

或者你在 build.sbt 中这样写:

import AddSettings._

name := "so1"

version := "1.0-SNAPSHOT"

libraryDependencies ++= Seq(
  jdbc,
  anorm,
  cache
)

lazy val main = Project(id="main", base=file(".")).settings(play.Project.playScalaSettings:_*).autoSettings(userSettings, allPlugins, sbtFiles(file("../common.sbt")), defaultSbtFiles)

另一种可能的方法是创建一个 Build.scala(如在 Play 2.1 中),将设置设置为一个真正的 SBT 项目的 play.Project(appName, ...)。

于 2013-10-30T07:03:34.323 回答