Я пытаюсь запустить приложение воспроизведения, в котором я использовал guice для внедрения зависимостей.
Мой контроллер выглядит следующим образом
import scala.concurrent.ExecutionContext
import javax.inject.Inject
import play.api.libs.json.Json
import play.api.mvc._
class MyControllers @Inject()(
service: MyService,
cc: MessagesControllerComponents)(implicit ec: ExecutionContext)
extends MessagesAbstractController(cc) {
def getAll(id: Int): Action[AnyContent] = Action.async { implicit request =>
// code to fetch from service and return result
}
Точно так же в моей службе у меня зависимость вводится DAOas
class MyService @Inject()(dao: MyDAO)(implicit ec: ExecutionContext) {
// call to DB
}
Мой файл build.sbt выглядит примерно так
name := """service-application"""
version := "2.6.x"
scalaVersion := "2.12.7"
crossScalaVersions := Seq("2.11.12", "2.12.4")
libraryDependencies ++= Seq(
guice,
"com.typesafe.play" %% "play-slick" % "3.0.3",
"com.typesafe.play" %% "play-slick-evolutions" % "3.0.3",
"org.mockito" % "mockito-all" % "1.10.19" % Test,
"com.h2database" % "h2" % "1.4.197",
"org.scalactic" %% "scalactic" % "3.0.5",
"org.scalatest" %% "scalatest" % "3.0.5" % "test",
"org.scalatestplus.play" %% "scalatestplus-play" % "3.1.2" % Test,
"net.codingwell" %% "scala-guice" % "4.1.0",
"com.typesafe.slick" %% "slick-codegen" % "3.2.1",
"com.typesafe.slick" %% "slick-testkit" % "3.2.3" % Test,
specs2 % Test
)
addSbtPlugin("com.geirsson" % "sbt-scalafmt" % "1.5.1")
routesGenerator := InjectedRoutesGenerator
Однако теперь, когда я пытаюсь запустить приложение воспроизведения через оболочку sbt с помощью команды
run
Я получаю ошибку как
[IJ]sbt:service-application> run
[error] java.lang.RuntimeException: No main class detected.
[error] at scala.sys.package$.error(package.scala:27)
[error] (Compile / bgRun) No main class detected.
[error] Total time: 1 s
Не могли бы вы сообщить мне, что мне здесь не хватает?Это какая-то конфигурация, которую мне не хватает в файле conf?
Заранее спасибо !!!