我们正在使用 maker 来构建一个非常大的 Scala 项目。编译一个18层的项目(大约30-40个模块)大约需要3分钟。
我有兴趣将性能与更新的 SBT 进行比较,并且我为 sbt 0.12.4 创建了一个快速而肮脏的构建文件。尽管 SBT 使用并行编译,但 需要 10 分钟 从 clean 编译相同的项目(不计算 ivy 下载时间)。
控制台输出似乎全神贯注于解决依赖项,这些依赖项都在我的 Ivy 缓存中。我偶然发现了 Why sbt runs dependency resolution every time after clean?,它提供了一种至少将第二次构建加速到 3.5 分钟的技巧。但是,此 hack 不适用于 0.13.x。
sbt
编译的吗? 尽管这不是项目,但出于所有意图和目的,假设我的构建脚本看起来像 build.scala(这个文件是我使用的模板,并在第 54 行附近添加了 hack)。
最佳答案
给你,加这个。在 0.13.1 上对我有用。
cleanKeepFiles ++= Seq("resolution-cache", "streams").map(target.value / _)
关于sbt - 如何避免在 sbt 0.13.x 中重建解析器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21123819/