Sbt 如何结合crossProject和dependsOn
我有一个多项目定义,如下所示:Sbt 如何结合crossProject和dependsOn,sbt,scala.js,Sbt,Scala.js,我有一个多项目定义,如下所示: 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
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/共享部分。但我不确定实现这一目标的最佳方式。如果我尝试做以下事情:
lazy val web = crossProject.
settings(commonSettings: _*).
settings(...
).jsSettings(...
).jvmSettings(...
).dependsOn(core)
我的build.scala出现编译错误:
。。。类型失配;找到[错误]:需要sbt.Project[错误]:
org.scalajs.sbtplugin.cross.CrossClasspathDependency[错误]惰性val
网=
crossProject.settings().jsSettings().jvmSettings().dependsOn(核心)
[错误]^
省略web项目的dependsOn
lazy val webJS = web.js.dependsOn(...)
这对我来说很有意思。你能分享完整的错误信息吗?为什么要扩展现有项目?你看过这个例子了吗?相反,你可能想让你的
core
成为一个交叉项目,而把web
作为一个普通项目,使用.enablePlugins(ScalaJSPlugin)
。