哪种构建工具是Scala最好的?它们各自的优缺点是什么?如何确定在项目中使用哪个?
哪种构建工具是Scala最好的?它们各自的优缺点是什么?如何确定在项目中使用哪个?
我们在工作中使用Maven来构建Scala项目,因为它能够很好地与我们的CI服务器集成。当然,我们也可以运行一个shell脚本来启动构建,但是我们需要从Maven获取其他的信息并进入CI系统,这是唯一我能想到使用Maven的理由。
否则,只需使用SBT即可。你可以访问相同的依赖项(实际上是Maven最好的部分,以我的经验而言)。你还可以获得增量编译,这非常重要。还可以在项目内部启动shell,这也非常棒。
ScalaMock仅适用于SBT,并且您可能希望使用它而不是Java模拟库。此外,由于您可以在构建文件中编写完整的Scala代码,因此扩展SBT要容易得多,无需通过编写Mojo来完成繁琐的过程。
简而言之,除非您确实需要将其与CI服务器紧密集成,否则请使用SBT。
这个问题很容易只产生许多意见;最好有一个清晰的要求列表或者环境描述, 先前的知识等
FWIW,这个Scala邮件列表线程中有更多的意见。
我的建议是:如果您没有特定的需求,请使用sbt
gen-idea
任务,然后重新打开项目:更新完成。compile
,test
,run
,doc
,publish-local
,console
)-- console
是最好的特性之一。一些人讨厌sbt,因为它使用Ivy进行依赖管理(我无法评论其优缺点,但大多数情况下这不是问题),还有一些人讨厌sbt,因为你需要使用Scala DSL而不是XML来指定构建文件。一些人对sbt的格式从v0.7到v0.10的更改感到失望,但显然,如果您从头开始,迁移就不会影响您。