在我的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依赖关系以某种方式悄然发生,即使我还没有指定它。我做错了什么?
答案 0 :(得分:1)
您可能直接或通过ScalaJSPlugin
在JVM项目上指定crossProject
。只有在创建常规SBT项目时才需要插件,因为crossProject
会自动为JS子项目包含它。