sbt-1.1.1 sbt版本显示1.1.0

sbt-1.1.1 sbt版本显示1.1.0,sbt,Sbt,我援引: brew install sbt sbt sbtVersion 我得到: /usr/local/Cellar/sbt/1.1.1: 491 files, 48.3MB, built in 7 seconds [info] Loading project definition from /Users/name/project [info] Set current project to name (in build file:/Users/name/) [info] 1.1.0 我

我援引:

brew install sbt
sbt sbtVersion
我得到:

/usr/local/Cellar/sbt/1.1.1: 491 files, 48.3MB, built in 7 seconds
[info] Loading project definition from /Users/name/project
[info] Set current project to name (in build file:/Users/name/)
[info] 1.1.0
我援引:

brew install sbt
sbt sbtVersion
我得到:

/usr/local/Cellar/sbt/1.1.1: 491 files, 48.3MB, built in 7 seconds
[info] Loading project definition from /Users/name/project
[info] Set current project to name (in build file:/Users/name/)
[info] 1.1.0
我期待着见到你

[info] 1.1.1
为什么版本值不匹配


谢谢。

很可能,因为您有一个带有行的文件
项目/build.properties

sbt.version=1.1.0
因此,一件事是您用自制软件安装的启动器版本,另一件事是您在特定项目中启动的sbt版本。如果您没有在
project/build.properties
中明确设置它,sbt将尝试运行自己的版本(launcher's,即您的示例中的1.1.1)

另一个可能的原因是,自制软件可以安装公式,但不能链接二进制文件(假设您从sbt 1.1.0升级)。您可以运行多个命令来验证您拥有的版本

$ brew info sbt
...

$ brew list --versions sbt
sbt 0.13.16 0.13.11 1.0.0 1.0.1 1.1.0 0.13.12 0.13.15 1.1.1 0.13.13 1.0.4 1.0.3 1.0.2

$ brew list sbt
/usr/local/Cellar/sbt/1.1.1/bin/sbt
/usr/local/Cellar/sbt/1.1.1/libexec/bin/ (5 files)
/usr/local/Cellar/sbt/1.1.1/libexec/lib/ (483 files)

您可以在这里看到,我安装了许多旧版本,但链接的是1.1.1。例如,如果我需要切换到旧的启动器,我可以运行
brew switch sbt 1.0.4

非常感谢@laughedelic您是正确的版本值来自project/build.properties。似乎project/build.properties是从运行sbt sbtVersion的地方自动创建的。我似乎在升级之前运行过sbt sbtVersion,在升级之后从同一位置再次运行,因此旧版本值是从先前创建的项目/build.properties中选取的。谢谢。@jakstack我认为这种行为是在SBT1.x中引入的,它会在运行sbt时创建文件,而不仅仅是
sbt sbtVersion
。关键是您应该始终拥有这个文件(手动或自动创建),因为您的构建定义取决于sbt版本。