如何处理 sbt、scala、库的版本

How to handle versions of sbt, scala, libraries

在 Scala 中玩某些东西时,我通常会花大量时间尝试依赖版本、Scala 版本、%%% 等的组合。当它开始工作时,我是不太清楚为什么,或者持续了多长时间...

如果有人能解释 Scala 生态系统处理 sbt、scala 和库版本的方式,那就太好了。或者也许给我一些文档。

刚开始时,我为此苦苦挣扎。这些天我开始每个项目时都使用样板 build.sbt,只有 scalaVersion 和我机器上当前的任何 sbt:

organization := "foo"

version := "0.1"

scalaVersion := "2.10.4"

根据需要选择最新的 2.10 或 2.11。大多数值得注意的图书馆都交叉发布到两者中。

现在,当您找到要使用的库时,请前往 http://mvnrepository.com/ 并在那里搜索它们。寻找 _2.10_2.11 后缀(取决于您的版本)。如果两者都没有,您可能没问题。

一旦你找到你的库和你想要的版本,mavenrepository 甚至会为你提供你需要在其 sbt 选项卡中使用的 sbt link,如下所示:

libraryDependencies += "com.typesafe.play" % "play-test_2.10" % "2.4.0-M3"

从那里您甚至可以探索库将带来的依赖项。这应该可以满足您的大部分日常需求。