Yog*_*til 8 scala build-tools sbt
我目前正在使用SBT来构建我的scala项目,但是最近我学习了另一个名为CBT的构建工具.
我可以从CBT文档中看到一个明显的优势,编写构建文件与编写scala代码一样好.
我想知道使用它的人的性能,构建时间等构建工具的比较优缺点.
cvo*_*ogt 14
我是CBT的作者.
TL; DR CBT在某些领域更简单,更快,但更年轻,更少实践证明.
长版:
CBT旨在使用比SBT更简单,同时与Maven或Ant等旧工具相比,在表现力方面具有相似的优势.我相信CBT在这里提供.它还在引用任务(方法)时为您提供类型安全性,其中在SBT中,任务可能在您正在读取的范围内定义,也可能不定义.性能方面CBT从bash启动时间更快(约100ms),并通过操作系统推送通知立即响应文件更改,而不是SBT的0.5s间隔轮询.
此时CBT的实践证明不如SBT,您可能会发现一些粗糙的边缘.特别是现在很少有文件,我打算尽快改变.您还可以找到更少的在线CBT构建示例.然而,CBT的repo中有examples文件夹和测试.你可能还会发现一些插件的盲点.存在所有的linters,代码格式化器,编译器,发布插件.打包和IDE支持仍需要重大改进.插件很容易编写和添加.
CBT的源代码在概念上非常简单,易于使用的初学者友好代码,部分原因是CBT在更改后自动重建,使其立即可用.SBT的代码库更难掌握,我不知道如何实际使用本地更改的代码库,我想部署快照构建.
CBT目前不会同时运行任务或构建项目.它可能永远不会对项目中的任务执行此操作,但可能会为不同的子项目启动并发编译.SBT尽可能并行化任务(或假设可能).我不认为CBT的表现会因为没有这样做而受到影响.总的来说它非常活泼.
CBT尚未在大型项目上进行过战斗测试.CBT本身是一个包含> 10个子项目的多项目构建,但这可能是迄今为止尝试过的最大项目.
所以现在(如果您选择CBT准备好阅读大量的源代码,请使用gitter通道与我们交谈,不使用IDE或自行配置,帮助修复更小) ,肤浅的可用性错误没有人打扰修复.
如果你想要更好的,更好的支持,更有文档记录,更复杂的工具,更多的副本和可用的例子以及更多的在线插件,请选择SBT.如果你想要一个更简单,更易于使用,更快速,几乎没有文档的代码库工具,你可以快速理解,但你现在有时可能需要修复自己.
最近还有关于CBT的视频:https://youtu.be/-2aMaAPQ35s