我有一个play框架应用程序,其目录结构如下:
server
- app
- services
- MyService.scala
- project
- Dependencies.scala
- src/main/scala
- MyMetaService.scala
- build.sbt
Circe目录包含一个源代码生成器任务(sbt Task),我希望能够使用/project
。我的build.sbt
文件确实包含对circe包的引用,如果我发出:
import io.circe._
在MyService.scala
中,包可以很好地解析。但是,如果我在MyMetaService.scala
中执行相同的操作,包将无法解析。我知道这是因为我没有指定依赖项应该应用于/project
目录,但我不知道如何做到这一点。这是我的build.sbt
import src.main.scala.generate.ModelGenerator
name := "server"
version := "1.0"
lazy val `server` =
(project in file("."))
.settings(libraryDependencies ++= Dependencies.dependencies)
.enablePlugins(PlayScala)
resolvers ++=
Seq(
"Akka Snapshot Repository" at "http://repo.akka.io/snapshots/",
"scalaz-bintray" at "https://dl.bintray.com/scalaz/releases",
"releases" at "http://oss.sonatype.org/content/repositories/releases",
"snapshots" at "http://oss.sonatype.org/content/repositories/snapshots"
)
scalaVersion := "2.12.2"
sourceGenerators in Compile ++= Seq(
ModelGenerator.generatorTask.taskValue
)
还有我的Dependencies.scala
import play.sbt.PlayImport._
import sbt._
object Dependencies {
val dependencies: Seq[ModuleID] =
Seq(
jdbc,
ehcache,
ws,
specs2 % Test,
guice,
"io.circe" %% "circe-core" % "0.11.1",
"io.circe" %% "circe-generic" % "0.11.1",
"io.circe" %% "circe-parser" % "0.11.1"
)
}
发布于 2019-05-13 01:32:31
在project/build.sbt
中为元构建项目创建单独的build.sbt
,并以与正确构建相同的方式导入依赖项。例如
// This is project/build.sbt
val circeVersion = "0.10.0"
libraryDependencies ++= Seq(
"io.circe" %% "circe-core",
"io.circe" %% "circe-generic",
"io.circe" %% "circe-parser"
).map(_ % circeVersion)
现在应该让circe对project/.../MyMetaService.scala
可用
https://stackoverflow.com/questions/56100998
复制相似问题