如何结合 crossProject 和 dependsOn
How to combine crossProject and dependsOn
我有一个多项目定义,如下所示:
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 client/server 模型。所以我需要扩展 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]
^
省略 Web 项目的 dependsOn。
lazy val webJS = web.js.dependsOn(...)
它对我有用。
我有一个多项目定义,如下所示:
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 client/server 模型。所以我需要扩展 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]
^
省略 Web 项目的 dependsOn。
lazy val webJS = web.js.dependsOn(...)
它对我有用。