我们正在使用maker来构建一个非常大的scala项目。编译18层项目大约需要3分钟(约30-40个模块)。
我有兴趣将性能与更新的SBT进行比较,并为sbt 0.12.4创建了一个快速而脏的构建文件。尽管SBT使用并行编译,但是从干净(不计算常春藤下载时间)编译同一个项目需要 10分钟。
控制台输出似乎全神贯注于解析依赖项,这些依赖项都在我的常春藤缓存中。我偶然发现Why sbt runs dependency resolution every time after clean?它提供了一个黑客攻击,至少可以将第二个版本加速到3.5分钟。但是,这个hack在0.13.x上不起作用。
sbt
编译吗?虽然这不是项目,但假设所有意图和目的都是我的构建脚本看起来像build.scala(这个文件是我使用的模板,并在第54行附近添加了黑客)。
答案 0 :(得分:2)
在这里,添加此内容。适用于我的0.13.1。
cleanKeepFiles ++= Seq("resolution-cache", "streams").map(target.value / _)