我有一个多项目定义,如下所示:
lazy val commonSettings = settings( libraryDependencies ++= Seq( "ch.qos.logback" % "logback-classic" % "1.1.2",... ) lazy val core = (project in file(".")). settings(commonSettings: _*). settings(... ) lazy val web = (project in file("web")). settings(commonSettings: _*). settings(... ).dependsOn(core)
问题是我想设置web项目以使用Scala JS客户端/服务器模型.所以我需要扩展web项目以使用crossproject分割成js / jvm / shared部分.但我不确定实现这一目标的最佳方法.如果我尝试做类似的事情:
lazy val web = crossproject. settings(commonSettings: _*). settings(... ).jsSettings(... ).jvmSettings(... ).dependsOn(core)
我的build.scala出现了编译错误:
… type mismatch; [error] found : sbt.Project [error] required:
org.scalajs.sbtplugin.cross.CrossClasspathDependency [error] lazy val
web =
crossproject.settings().jsSettings().jvmSettings().dependsOn(core)
[error]
^
解决方法
省略webO项目的dependsOn.
lazy val webJS = web.js.dependsOn(...)
它成了我的伎俩.