Scala中的增量编译可靠吗?

Scala中的增量编译可靠吗?,scala,sbt,Scala,Sbt,正如许多人已经知道的,编译Scala代码很慢 为了实现持续集成,可以通过保留旧的.class文件和进行增量编译来赢得大量时间。删除.class文件更安全,但速度要慢得多 我使用SBT 0.13.9和Scala 2.11.7编译Scala/Java代码 我想知道进行增量编译是否可靠,即使在切换git分支时也是如此 如果它并不总是安全的,那么如何检测它呢?只要它的实现没有bug,它就是安全的 sbt不是没有bug的,因此您可能总是会遇到破坏增量编译的bug 除非您非常不幸,否则sbt增量编译中的错误

正如许多人已经知道的,编译Scala代码很慢

为了实现持续集成,可以通过保留旧的
.class
文件和进行增量编译来赢得大量时间。删除
.class
文件更安全,但速度要慢得多

我使用SBT 0.13.9和Scala 2.11.7编译Scala/Java代码

我想知道进行增量编译是否可靠,即使在切换git分支时也是如此


如果它并不总是安全的,那么如何检测它呢?

只要它的实现没有bug,它就是安全的

sbt不是没有bug的,因此您可能总是会遇到破坏增量编译的bug

除非您非常不幸,否则sbt增量编译中的错误只会导致您的代码库无法编译


也就是说,我只遇到过一次bug,在混合shapeless(记录)的特定特性和蛋糕模式时


在那个特定的实例中,我必须手动清理一些
.class
文件,以使增量编译器再次工作。

一般说来,它是可靠的

但是增量编译器有其已知的局限性


有关详细信息,请查看检查
git checkout
是否使用当前时间戳,而不是file.ymmv的上次提交时间,但根据我的经验,这至少在99%的时间内有效。