SBT默认安装1.0.3版本超过0.13.6

时间:2017-11-30 16:12:27

标签: scala sbt version

我正在尝试在 ubuntu 中安装 SBT 0.13.6 版本。为此,我执行以下步骤:

wget http://dl.bintray.com/sbt/debian/sbt-0.13.6.deb
sudo dpkg -i sbt-0.13.6.deb 
sudo apt-get update
sudo apt-get install sbt

安装完成后,当我查看sbt版本时,会显示版本1.0.3

这是命令:

hadoop@localhost:~$ sbt about
Getting org.scala-sbt sbt 1.0.3 ...
:: retrieving :: org.scala-sbt#boot-app
    confs: [default]
    69 artifacts copied, 0 already retrieved (22027kB/913ms)
Getting Scala 2.12.4 (for sbt)...
:: retrieving :: org.scala-sbt#boot-scala
    confs: [default]
    5 artifacts copied, 0 already retrieved (18986kB/225ms)
[info] Loading project definition from /home/hadoop/project
[info] Set current project to hadoop (in build file:/home/hadoop/)
[info] This is sbt 1.0.3
[info] The current project is {file:/home/hadoop/}hadoop 0.1-SNAPSHOT
[info] The current project is built against Scala 2.12.4
[info] Available Plugins: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin, sbt.plugins.Giter8TemplatePlugin
[info] sbt, sbt plugins, and build definitions are using Scala 2.12.4

我的 Scala 版本不是 2.12.4 ;它 2.11.8 。为什么它显示错误的版本?

hadoop@localhost:~$ scala -version
Scala code runner version 2.11.8 -- Copyright 2002-2016, LAMP/EPFL

我犯了什么错误吗?

1 个答案:

答案 0 :(得分:11)

SBT - 无论您安装哪个版本 - 都会在运行时下载项目特定版本的 SBT 。如果未指定此类版本,则将使用已安装的版本。如果您希望某个特定项目使用 SBT 0.13.6,那么您将创建一个名为./project/build.properties的文件(相对于项目的根目录,在此特定项目中为/home/hadoop/project/build.properties case)具有以下内容:

sbt.version=0.13.6
然后

SBT 将下载该版本,并将用它来构建您的项目。

因此,我强烈建议您始终在您的计算机上安装最新版本的 SBT ,因为这样可以简化未来的工作。

顺便说一句,我注意到您使用dpkg来安装特定的 SBT 版本,但之后使用了apt-get install sbt - 这可能会安装最新的 SBT < / em>发布(我猜测版本1.0.3)适用于您的 Ubuntu 版本,取代您通过dpkg安装的版本。这些命令的输出是什么?或者,您的/home/hadoop/project/build.properties文件 - 如果存在 - 可能是指定 SBT 版本1.0.3。

要考虑的另一件事:sbt命令应该从项目目录执行 - 一个只包含项目源的目录。从sbt文件夹运行HOME不是一个好主意,因为它会留下一些输出文件夹(例如./project./target等。)

编译 Scala 源时, SBT 将使用 SBT 构建文件中指定的版本(或用于构建如果未定义该属性,则使用> SBT 版本 - 它使用您计算机上可能具有的任何已安装的 Scala 版本。

如果您想使用 Scala 2.11.8,请将以下行添加到 SBT 构建文件中:

scalaVersion := "2.11.8"

我强烈建议您查看其网站上的SBT documentation