移动项目目录时保留sbt增量编译的结果

时间:2017-01-27 10:23:30

标签: scala sbt incremental-compiler zinc

考虑一下这个场景:我在一个名为foo的目录中有一个由sbt管理的简单scala项目。

cd foo
sbt compile

现在需要几秒钟,项目正确编译。

现在,感谢sbt增量编译,如果我运行

sbt compile

它在接近0秒内终止编译任务,因为源代码没有改变。

但是如果我将foo目录重命名为bar

cd ..
mv foo bar

并尝试再次编译

cd bar
sbt compile

现在编译任务再次花费几秒钟,因此不使用上一次编译的结果。

是否有办法保留项目的增量编译结果,即使它在磁盘上的绝对路径发生了变化?

2 个答案:

答案 0 :(得分:2)

您也可以尝试使用Hoarder Plugin:https://github.com/romanowski/hoarder

如果有任何问题/问题,请告诉我Hoarder的gitter。

答案 1 :(得分:0)

事实证明,正在进行一些工作以使渐进式编译结果可缓存。这是相关的PR:https://github.com/sbt/zinc/pull/216

此外,还有一个问题(在撰写本文时正在讨论)关于使锌的分析完全独立于机器。请参阅https://github.com/sbt/zinc/issues/218