我们正在使用 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。

  • 0.13 中的等效 hack 是什么?
  • 还有什么可以加速 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/

    10-13 07:48
    查看更多