У меня есть приложение Play Framework с такой структурой каталогов:
server
- app
- services
- MyService.scala
- project
- Dependencies.scala
- src/main/scala
- MyMetaService.scala
- build.sbt
В каталоге /project
размещена задача генератора исходного кода (sbt Task), для которой я хотел бы иметь возможностьиспользуйте волшебство.Мой 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"
)
}