我正在深入Scala并注意到sbt。我对Java / groovy项目中的Gradle感到非常满意,而且我知道Gradle有一个Scala插件。
在Scala项目中,为什么sbt胜过Gradle的充分理由是什么?
我正在深入Scala并注意到sbt。我对Java / groovy项目中的Gradle感到非常满意,而且我知道Gradle有一个Scala插件。
在Scala项目中,为什么sbt胜过Gradle的充分理由是什么?
Answers:
请注意,SBT和Gradle之间的主要区别在于其依赖项管理:
确实,缓存可能会造成混乱,但是常春藤不了解解析快照的情况并非如此。尤金在另一个话题中解释了这一点,也许是在管理员列表上。sbt的自动更新存在一个问题,已在0.12中解决。
据我所知,Ivy不支持以Maven的方式发布快照。我相信我已经在其他地方说过了,但是如果有人想改善这种情况,我的观点是最好与Gradle团队合作重用他们的依赖管理代码。
只是要让您知道,Ivy和Maven快照依赖项的问题是Gradle最终用其自己的依赖项管理代码替换Ivy的原因之一。这是一项艰巨的任务,但给我们带来了很多好处。
此推文提到将来所有情况都可能发生变化:
马克过去说过,他对使用Gradle代替Ivy进行SBT感兴趣。
(两种工具都可以互相学习)
对我来说,SBT的主要功能是:
fsc
)。~test
每次保存修改后,该命令将重新编译并测试您的项目。缺点是:
sbt是Scala DSL,对于它来说,Scala是一流的公民,因此从原则上讲,这似乎是一个不错的选择。
但是sbt遭受版本之间重大不兼容更改的困扰,这使得很难为任务找到正确的工作插件并使之正常工作。
我个人放弃了sbt,因为它引起的问题超出了解决的范围。我实际上切换到了gradle。
去搞清楚。
Sbt和gradle都基于静态类型的语言.....但是sbt有一些优点: