我在Scala编写了我的第一个中型项目,现在我有点担心Eclipse中缓慢的增量编译时间可能与我将我的类放在相对较少的大{{1}中的倾向有关。文件。
我背后的逻辑如下:如果我在一个大.scala
文件中修改一个小类并点击保存,编译器可能只会看到整个文件被某种方式修改,因此被迫重新编译所有内容它与依赖类一起存在于文件中,而不仅仅是修改后的类及其依赖类。
所以这就是问题:您放在单个文件中的Scala类的平均数量是否会影响重新编译速度?或者这样说:就重新编译速度而言,小.scala
文件比大文件更受欢迎,还是没有区别?
答案 0 :(得分:14)
你是对的:依赖关系跟踪单位是一个文件。如果对单个类进行更改,但编译单元有多个类,则会触发重新编译依赖于同一文件中其他类的所有文件。
编辑:
由于0.13.6 sbt默认使用新的名称散列方案。这允许仅重新编译至少对修改后的名称具有某种依赖性的文件。
这是Sbt在命令行上运行的方式,Eclipse在Sbt中使用增量编译器。