프론트 엔드 및 하나의 공유 프로젝트에서 Scala.js로 Play 프레임 워크 프로젝트를 만들려고합니다. 내 SBT의 구성은 다음과 같습니다Scala에서 CrossType.Pure sbt 프로젝트를 가져올 수 없습니다.
import sbt.Project.projectToRef
lazy val scalaV = "2.11.8"
lazy val shared = (crossProject.crossType(CrossType.Pure) in file("shared"))
.settings(
scalaVersion := scalaV,
libraryDependencies ++= Seq(
"com.mediamath" %%% "scala-json" % "1.0"
),
resolvers += "mmreleases" at "https://artifactory.mediamath.com/artifactory/libs-release-global",
addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full)
)
// set up settings specific to the JS project
.jsConfigure(_ enablePlugins ScalaJSPlay)
lazy val sharedJVM = shared.jvm.settings(name := "sharedJVM")
lazy val sharedJS = shared.js.settings(name := "sharedJS")
lazy val root = (project in file(".")).settings(
scalaVersion := scalaV,
scalaJSProjects := jsProjects,
pipelineStages := Seq(scalaJSProd, gzip),
routesGenerator := InjectedRoutesGenerator,
scalikejdbcSettings,
libraryDependencies ++= Seq(
jdbc,
cache,
ws,
evolutions,
"org.scalatestplus.play" %% "scalatestplus-play" % "1.5.1" % Test,
"mysql" % "mysql-connector-java" % "5.1.39",
"com.vmunier" % "play-scalajs-scripts_2.11" % "0.5.0"
),
resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"
).
enablePlugins(PlayScala).
aggregate(jsProjects.map(projectToRef): _*)
lazy val jsProjects = Seq(js)
lazy val js = (project in file("client")).settings(
scalaVersion := scalaV,
persistLauncher := true,
persistLauncher in Test := false,
autoCompilerPlugins := true,
scalacOptions ++= Seq("-unchecked", "-deprecation", "-feature"),
libraryDependencies ++= Seq(
"org.scala-js" %%% "scalajs-dom" % "0.9.0",
"com.mediamath" %%% "scala-json" % "1.0"
),
resolvers += "mmreleases" at "https://artifactory.mediamath.com/artifactory/libs-release-global",
resolvers += Resolver.sonatypeRepo("releases"),
addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full)
).enablePlugins(ScalaJSPlugin, ScalaJSPlay)
모든 것이 잘 작동하지만 문제는 : 나는 Scala.js에서 공유 프로젝트에서 아무것도 가져 프레임 워크 프로젝트를 재생할 수 없습니다. 어떻게 가져올려고 여기
그리고 :
import services.Encryptor
오류가있어 내가 컴파일 시간 :
not found: object services [error] import services.Encryptor
방법이 여기 내 공유 프로젝트 구조가 모습입니다 문제를 해결할 수 있습니까? 모든
에 흠이 필요합니다. 나는 Pure (나는 CrossType.Full을 사용한다.)의 전문가는 아니지만 그 디렉토리 구조는 나에게 이상하게 보였다. 나의 경험에 의하면, 공유 디렉토리는 대개 JS와 JVM에 대한 것이지 컨테이너가 아니다. ... –