繁体   English   中英

如何安装scala 2.12

[英]How to install scala 2.12

有多个二进制不兼容的 scala 2 版本,但是文档说安装是通过 IDE 或 SBT。

下载 SCALA 2

然后,安装 Scala:...通过安装 IDE(例如 IntelliJ)或 sbt(Scala 的构建工具)。

Spark 3需要 Scala 2.12。

Spark 3.1.2 使用 Scala 2.12。 您将需要使用兼容的 Scala 版本 (2.12.x)。

那么如果我们安装 sbt,我们如何确保 scala 版本是 2.12?

还是文档不准确,应该是“要使用特定版本的scala,需要自己下载特定的scala版本”?


更新

根据mario-galic的回答,在 SCALA 的一键安装中说:

安装 Scala 一直是一项比必要的更具挑战性的任务,有可能赶走初学者。 我应该自己安装 Scala 吗? sbt? 其他一些构建工具? 像 Ammonite 这样更好的 REPL 怎么样? 哦,在我需要安装 Java 之前?

为了解决这个问题,Scala 中心于 2020 年 1 月与 Alexandre Archambault 签约,通过 coursier 增加一键安装 Scala。 例如,在 Linux 上,我们现在需要的是:
$ curl -Lo cs https://git.io/coursier-cli-linux && chmod +x cs &&./cs setup

Scala 版本在build.sbt文件中指定,因此 SBT 将根据需要下载适当版本的 Z3012DCFF1477E1FEAAB817645ZC7。

我个人使用SDKMAN! 安装 Java 然后 SBT。

要理解的关键概念是系统范围安装和项目特定版本之间的区别。 系统范围的安装最终会在PATH上的某个位置,例如

/usr/local/bin/scala

并且可以多种方式安装,个人推荐Scala的coursier一键安装

curl -Lo cs https://git.io/coursier-cli-linux && chmod +x cs && ./cs setup

项目特定版本由scalaVersion sbt 设置指定,该设置将 Scala 下载到 coursier 缓存位置。 要查看特定项目使用的 Scala 版本和位置,请尝试show scalaInstance

inspect scalaInstance
[info] Task: sbt.internal.inc.ScalaInstance
[info] Description:
[info]  Defines the Scala instance to use for compilation, running, and testing.

Scala 在次要版本中应该是二进制兼容的,因此 Spark 3 或针对任何 Scala 2.12.x 版本构建的任何其他软件应该与任何其他 Scala major.minor.patch版本兼容。 请注意,内部编译器 API 不保证二进制兼容性,因此例如在发布编译器插件时,最佳做法是针对完整的特定 Scala 版本发布它。 例如注意 kind-projector 编译器插件是如何针对完整的 Scala 版本2.13.6发布的

https://repo1.maven.org/maven2/org/typelevel/kind-projector_2.13.6/

而 scala-cats 应用程序级库针对任何 Scala 2.13.x版本发布

https://repo1.maven.org/maven2/org/typelevel/cats-core_2.13/

同样,火花针对任何 Scala 2.12.x版本发布

https://repo1.maven.org/maven2/org/apache/spark/spark-core_2.12/

关于系统范围的安装,我为快速切换版本所做的一个技巧是将scala-runners放在PATH上,然后可以通过--scala-version参数启动不同的版本

scala --scala-version 2.12.14

例如,使用 coursier 或 scala-runners,您甚至可以通过-C--jvm快速切换 JDK

scala --scala-version 2.12.14 -C--jvm=11

对于一个项目,应该不需要手动下载 Scala 的特定版本。 sbt 直接或间接通过 IDE 将为您下载幕后的所有依赖项,因此唯一需要指定的是 sbt 设置scalaVersion

Using Python as analogy to Scala, and Pipenv as anology to sbt, then python_version in Pipfile is similar to scalaVersion in build.sbt . 在执行pipenv shellpipenv install之后,您最终会得到项目特定的 shell 环境,其中项目特定的 Python 版本和依赖项。 sbt 类似地下载项目特定的 Scala 版本和基于build.sbt的依赖项,尽管它不需要锁定文件或修改您的 Z2591C98B70119B5E2944 环境。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM