有没有办法在 build.sbt 中定义所需的 sbt 版本?

Is there a way to define the required sbt version in build.sbt?

在Scala项目的build.sbt定义中,是否可以定义构建项目所需的最低sbt版本?

project/build.properties 允许你强制 sbt 使用特定版本。如果当前安装的 sbt 版本不同 - sbt 本身将下载(如果需要)您在此处指定的版本:

sbt.version=0.12.0

参见,例如 Hello。所以实际上你可能已经在你的系统中安装了几个版本的 sbt - 它只是 jars,放在 .sbt/boot/scala-{scala.version required by this sbt}/org.scala-sbt/sbt/{sbt.version} 文件夹中。 Sbt 可执行文件实际上查找 project/build.properties 中指定的版本或(如果未指定)系统中安装的最高版本。

P.S。从 sbt-launcher 的角度来看,sbt 只是一个与 ansi.jar 等小的不相交的其他依赖项的依赖项,因此指定 [0.13.1, 0.13.8] 等版本的范围没有多大意义,因为它只对冲突有效传递部门否则,指定更高的可能版本(可以编译)就足够了——你甚至可以选择你已经拥有的某个版本(并以这种方式更新项目的 sbt)。