Scala 比较sbt和Gradle
我潜入斯卡拉,注意到了sbt。我对Gradle在java/groovy项目中的表现非常满意,我知道Gradle有一个scala插件Scala 比较sbt和Gradle,scala,sbt,gradle,Scala,Sbt,Gradle,我潜入斯卡拉,注意到了sbt。我对Gradle在java/groovy项目中的表现非常满意,我知道Gradle有一个scala插件 在Scala项目中,有什么好的理由支持sbt而不是Gradle?sbt是Scala DSL,而且Scala是一等公民,因此从原则上讲,它似乎很适合 但是sbt在版本之间存在重大的不兼容变化,这使得它很难为任务找到正确的工作插件并使其工作 我个人放弃了sbt,因为它带来的问题比解决的问题还多。我真的换成了格拉德尔 如图所示。对我来说,SBT的主要功能是: 快速编译(
在Scala项目中,有什么好的理由支持sbt而不是Gradle?sbt是Scala DSL,而且Scala是一等公民,因此从原则上讲,它似乎很适合 但是sbt在版本之间存在重大的不兼容变化,这使得它很难为任务找到正确的工作插件并使其工作 我个人放弃了sbt,因为它带来的问题比解决的问题还多。我真的换成了格拉德尔
如图所示。对我来说,SBT的主要功能是:
- 快速编译(比fsc快)
- 连续编译/测试:每次保存修改时,
命令将重新编译并测试项目~test
- 跨多个scala版本进行交叉编译和交叉发布
- 自动检索具有正确scala版本兼容性的依赖项
- 一种倾向于阻止新用户(特别是来自Java的用户)的象形文字语法
- 没有简单的方法来定义“任务”:如果你需要一个特殊的构建过程,你需要找到一个插件,或者自己编写一个插件
- :,带有一个修订版本,可以作为固定版本(例如1.5.2)或最新版本(或动态版本)给出。
请参阅“”
这意味着“-SNAPSHOT”机制支持可能会有问题,即使以下详细信息:
- :提及():
(这两种工具都可以)我对gradle是相当陌生的,对sbt也是非常陌生的-到目前为止,我真正喜欢sbt的是交互式控制台。它允许我使用像“inspect”这样的命令来更好地了解正在发生的事情。AFAIK gradle不提供类似于此atm的功能。Sbt和gradle都基于静态类型语言……但Sbt的优势不多:
- 更好的插件支持,特别是自动插件
- 任务创建和任务之间的依赖关系管理
- sbt特别适合scala项目,因为它支持增量构建,并且大多数sbt本身是用scala编写的,sbt构建定义是用scala编写的
- sbt具有交互式shell支持和许多有用的内置任务
- sbt默认生命周期非常有用,可以让新手轻松入门