sbt – 如何组合crossProject和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客户端/服务器模型.所以我需要扩展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(...)

它成了我的伎俩.

相关文章

共收录Twitter的14款开源软件,第1页Twitter的Emoji表情 Tw...
Java和Scala中关于==的区别Java:==比较两个变量本身的值,即...
本篇内容主要讲解“Scala怎么使用”,感兴趣的朋友不妨来看看...
这篇文章主要介绍“Scala是一种什么语言”,在日常操作中,相...
这篇文章主要介绍“Scala Trait怎么使用”,在日常操作中,相...
这篇文章主要介绍“Scala类型检查与模式匹配怎么使用”,在日...