【发布时间】:2017-04-17 11:29:02
【问题描述】:
我有 2 个不同的独立项目 A 和 B,它们都使用 ScalaJS 默认的连接交叉编译项目的方式(见这里:https://www.scala-js.org/doc/project/cross-build.html)。
现在我想添加一个从 B 到 A 的 SBT 类路径依赖项,方式类似于:
projectA.dependsOn(projectB)
项目B的js部分可以使用项目A的js和shared部分,jvm部分可以访问项目A的jvm和shared部分。
由于我使用upickle 序列化我的数据,我不能只使用libraryDependeny 和项目A 的publishLocal(因为upickle 在我的情况下需要有关项目A 的编译时间信息)。
我该如何解决这个问题?
【问题讨论】:
-
CrossProject之间的默认.dependsOn应该会给您提供这种行为。 -
我可以从
uri构建一个CrossProject(就像一个普通的根项目),这样我就可以从远程git repo 中提取它吗? CrossProject 的文档非常少,我还没有找到任何工厂方法/构造函数。 -
CrossProject是一个工厂,用于在您的build.sbt中创建两个 sbt 项目,一个用于 JVM,一个用于 JavaScript,同时共享一些设置和其他定义。此时没有从远程存储库中提取。你能澄清一下你想要做什么吗? -
项目 A 和项目 B 不共享目录结构,这意味着它们在磁盘上是独立的(或在不同的远程 git 存储库上)。问题归结为如何从
File或Uri创建CrossProject,就像RootProject可以从这两种引用中构建一样。
标签: scala sbt cross-compiling scala.js