Почему sbt сообщает "не найден: значение PlayScala" с Build.scala, а build.sbt работает?
Я создаю многомодульный проект sbt со следующей структурой:
<root>
----build.sbt
----project
----Build.scala
----plugins.sbt
----common
----LoggingModule
LoggingModule
- проект Play Framework, а common
- простой проект Scala.
В plugins.sbt
:
resolvers += "Typesafe repo" at "http://repo.typesafe.com/typesafe/releases/"
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.3")
Пока у меня это в build.sbt
, все работает нормально, и он распознает PlayScala
:
name := "Multi-Build"
lazy val root = project.in(file(".")).aggregate(common, LoggingModule).dependsOn(common, LoggingModule)
lazy val common = project in file("common")
lazy val LoggingModule = (project in file("LoggingModule")).enablePlugins(PlayScala)
Однако, как только я помещу это в project/Build.scala
вместо `build.sbt 'следующим образом:
object RootBuild extends Build {
lazy val root = project.in(file("."))
.aggregate(common, LoggingModule)
.dependsOn(common, LoggingModule)
lazy val common = project in file("common")
lazy val LoggingModule = (project in file("LoggingModule")).enablePlugins(PlayScala)
...//other settings
}
он генерирует ошибку как:
not found: value PlayScala
lazy val LoggingModule = (project in file("LoggingModule")).enablePlugins(PlayScala)
^
Как решить проблему?
Ответы
Ответ 1
Это просто недостающий импорт.
В файлах .sbt
некоторые вещи автоматически импортируются по умолчанию: содержимое объектов, расширяющих Plugin
, и ( >= 0.13.5) autoImport
поля в AutoPlugin
s. Это относится к PlayScala
.
В файле Build.scala
применяются обычные правила импорта Scala. Таким образом, вы должны импортировать вещи более явно. В этом случае вам нужно import play.PlayScala
(или использовать .enabledPlugins(play.PlayScala)
напрямую).
Ответ 2
У меня такая же проблема, я уже перепробовал много вещей, которые нашел в сети, но без решения до сих пор, пожалуйста, кто-нибудь может мне помочь.
Мой проект /build.properties есть только
sbt.version=1.2.1
Мой build.sbt это тот
version := "1.0-SNAPSHOT"
scalaVersion := "2.11.1"
libraryDependencies ++= Seq(
jdbc,
anorm,
cache,
ws,
"com.wordnik" %% "swagger-play2" % "1.3.10",
"org.scalikejdbc" %% "scalikejdbc" % "2.1.4",
"org.scalikejdbc" %% "scalikejdbc-play-plugin" % "2.3.3",
"org.scalikejdbc" %% "scalikejdbc-play-fixture-plugin" % "2.3.3",
"com.typesafe.play" %% "sbt-plugin" % "2.3.3"
)
lazy val root = (проект в файле (".")). enablePlugins (PlayScala)