2015-02-10 12 views
11

在Scala项目的build.sbt定义中,是否可以定义生成项目所需的最低版本的sbt?有没有办法在build.sbt中定义所需的sbt版本?

+0

您在build.properties中定义sbt版本。最低版本是什么意思?任何大于最低版本的版本都很好? – mohit 2015-02-10 10:17:16

+0

@mohit是的,这是正确的。 – Bar 2015-02-10 15:19:21

回答

15

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

sbt.version=0.12.0 

见,Hello例如。所以实际上你可能已经在你的系统中安装了几个版本的sbt - 它只是放在.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)。

+0

好吧,我可以指定一个特定的版本,但不是“大于”,是否正确? – Bar 2015-02-10 13:37:02

+1

是的。更好 - 比这里没有任何意义,因为你可以在计算机上自动获得任何版本的sbt。如果你真的需要更大的异常 - 你可以通过分析'sbtVersion.value'在'build.sbt'内部手动检查它,但这对于sbt来说不是一种无用的方法。 – dk14 2015-02-10 15:49:45

+1

大于实际上会很好。如果你打算使用在0.13.6中引入的语法,那么表明最低版本需要0.13.6是很好的,但如果你使用的是0.13.7,那很好(即,它是没有必要下载0.13.6)。 – 2015-04-16 14:09:51

相关问题