Я пытаюсь создать приложение Play с задним концом и передним концом (используя Scala.js). Я разделил код на client
и server
папки.Невозможно создать многопроектную сборку
Для создания Multi Project Build
я смотрел на эту http://www.scala-sbt.org/release/docs/Multi-Project.html и сделать мой build.sbt
так:
name := """ScalaWeb"""
version := "1.0-SNAPSHOT"
lazy val commonSettings = Seq(
scalaVersion := "2.11.7",
libraryDependencies ++= Seq(
jdbc,
cache,
ws,
specs2 % Test
),
libraryDependencies ++= Seq(
"org.sorm-framework" % "sorm" % "0.3.19",
"org.scala-lang" % "scala-compiler" % scalaVersion.value force(),
"com.h2database" % "h2" % "1.3.148"
),
libraryDependencies += "com.typesafe.scala-logging" %% "scala-logging" % "3.1.0",
/*libraryDependencies += "com.typesafe.scala-logging" %% "scala-logging" % "3.1.0",
libraryDependencies += "org.slf4j" % "slf4j-api" % "1.7.12"
libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.1.3"*/
resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases",
// Play provides two styles of routers, one expects its actions to be injected, the
// other, legacy style, accesses its actions statically.
routesGenerator := InjectedRoutesGenerator,
scalacOptions += "-Ylog-classpath",
// use this if you just want jawn's parser, and will implement your own facade
libraryDependencies += "org.spire-math" %% "jawn-parser" % "0.8.3",
// use this if you want jawn's parser and also jawn's ast
libraryDependencies += "org.spire-math" %% "jawn-ast" % "0.8.3",
//for reading Json libraries
libraryDependencies += "org.scalaj" %% "scalaj-http" % "2.2.1"
)
lazy val server = (project in file("server")).settings(
commonSettings: _*
).enablePlugins(PlayScala)
lazy val client = (project in file("client")).settings(
commonSettings: _*
).enablePlugins(PlayScala)
fork in run := true
Поэтому в основном я поместил все зависимости в commonSettings
и импортирован, что в client
и server
проектов.
Однако, я получаю эту ошибку:
[error] (scalaweb/compile:backgroundRun) No main class detected.
Почему это происходящее? Я установил свой build.sbt
неправильно?
Я добавил 'lazy val root = (проект в файле (". ")). агрегат (клиент, сервер) 'to' build.sbt'. Я даже создал фиктивный класс в обоих проектах, который содержит только 'def main (args: Array [String]): Unit = { }'. Тем не менее, я по-прежнему получаю ту же ошибку. – octavian
работает ли сервер/запуск или клиент/запуск? –
Нет, если я набираю 'активатор', а затем' server run', я получаю '[ошибка] Ожидаемый идентификатор символа [ошибка] Недействительная команда: server (похоже: set) [ошибка] Ожидаемый идентификатор проекта [ошибка] Ожидаемый '/' (при выборе проекта) [ошибка] Ожидаемая конфигурация' – octavian