gpt4 book ai didi

scala - 为什么 sbt 在 build.sbt 工作时使用 Build.scala 报告 "not found: value PlayScala"?

转载 作者:行者123 更新时间:2023-12-04 03:27:16 26 4
gpt4 key购买 nike

我正在创建一个多模块 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)
^

如何解决问题?

最佳答案

这只是一个缺少的导入。

.sbt文件,默认情况下会自动导入一些内容:扩展对象的内容Plugin , 和 (>= 0.13.5) autoImport AutoPlugin 中的字段s。这是 PlayScala 的情况.

Build.scala文件,正常的 Scala 导入规则适用。所以你必须更明确地导入一些东西。在这种情况下,您需要 import play.PlayScala (或直接使用 .enabledPlugins(play.PlayScala))。

关于scala - 为什么 sbt 在 build.sbt 工作时使用 Build.scala 报告 "not found: value PlayScala"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26134083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com