Scala.js 跨项目错误依赖

Scala.js cross-project wrong dependency

在我的build.sbt中我有一个跨项目(js + jvm),我在我的另一个项目中依赖jvm部分(姑且称之为events)。这是我的部分 build.sbt:

lazy val common = (crossProject in file(“common”)).enablePlugins(ScalaJSPlugin)
lazy val common_js = common.js
lazy val common_jvm = common.jvm
lazy val events = (project in file (“events)).dependsOn(common_jvm)

但是当我 sbt events/assembly 时,此设置失败了。错误如下:

java.lang.RuntimeException: deduplicate: different file contents found in the following:
JS_DEPENDENCIES
/Users/riakovle/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-library_2.11/0.6.13/scalajs-library_2.11-0.6.13.jar:JS_DEPENDENCIES

如果我执行 dependencyGraph,我会看到我的 events 项目依赖于 common:common_sjs0.6_2.11:0.1-SNAPSHOT,并且前面提到的 scalajs-library 是从它传递过来的。 所以我的常见 js 依赖似乎以某种方式蔓延,即使我没有指定它。我做错了什么?

您可能直接或通过 crossProject 在 JVM 项目上指定 ScalaJSPlugin。该插件仅在创建常规 SBT 项目时需要,因为 crossProject 会自动将其包含在 JS 子项目中。