考虑以下场景:我有一个由 sbt 管理的简单 scala 项目,位于一个名为 foo
的目录中。
cd foo
sbt compile
现在只需几秒钟,项目即可正确编译。
现在,感谢 sbt 增量编译,如果我运行
sbt compile
它会在接近 0 秒后终止编译任务,因为源代码没有更改。
但是如果我将foo
目录重命名为 bar
cd ..
mv foo bar
并尝试再次编译
cd bar
sbt compile
现在,编译任务再次需要几秒钟,因此不使用先前编译的结果。
有没有办法保留项目的增量编译结果,即使它在磁盘上的绝对路径发生了变化?
您也可以尝试使用Hoarder Plugin:https://github.com/romanowski/hoarder。
在Hoarder的gitter上ping我,以防有任何疑问/问题。
事实证明,正在进行一些工作以使增量编译结果可缓存。以下是相关的公关:https://github.com/sbt/zinc/pull/216。
此外,还有一个问题(在撰写本文时正在讨论)关于使锌的分析完全独立于机器。请参阅 https://github.com/sbt/zinc/issues/218。