【发布时间】:2015-10-17 19:00:33
【问题描述】:
为基于 Scala.js CrossProject 的构建定义的自定义编译目标(/tmp/sbt/ 上的 ramdisk)出现“重叠输出目录”sbt 错误。
FWIW,已在 SBT 项目中无缝使用上述编译目标 3 年。使用 sbt 默认编译目标(即构建项目根目录)时不会发生错误。因为我的工具是围绕 ramdisk 设置而设计的,所以有点碍事。
这是实际的错误:
Overlapping output directories:/tmp/sbt/foo:
[error] ProjectRef(file:/home/me/path/to/project/,fooJS)
[error] ProjectRef(file:/home/me/path/to/project/,fooJVM)
已尝试按照建议的in the docs 子类化CrossType,覆盖projectDir 和sharedSrcDir 无济于事,同样的错误。这是检查重叠目标的SBT source location。
我想知道为什么自定义编译目标会发生这种情况,而不是默认目标?更重要的是,如何使用 Scala.js 的 crossProject 获得自定义编译目标?
【问题讨论】:
-
您用来定义自定义编译目标的 sbt 配置是什么?
-
@sjrd 我分叉了你的 scalajs-cross-compile github 项目。这是构建的要点:gist.github.com/godenji/a161be68fabc988fb5fa
-
尝试了各种方法,例如从
file(".")更改为file("module"),以及将projectDir和sharedSrcDir拆分为单独的目录,无论如何都会出现相同的错误。 -
@sjrd 哦,编译目标是在我的
~/.sbt/0.13/global.sbt中全局定义的,包括:target <<= (name) {(name) => file("/tmp/sbt/") / name }