Skip to content

Latest commit

 

History

History
102 lines (70 loc) · 3.86 KB

README.org

File metadata and controls

102 lines (70 loc) · 3.86 KB

Scala 新手入门指南

前言

本教程旨为完全的 Scala 新手在提供一个最简洁最直接的上手导引。操作系统环境: Linux.

直接上手指南

如果你是完全的 Scala 新手,请按顺序做下面的 1~7 步。

1. 安装 JDK

Debian 系:

$ ~ sudo apt install openjdk-11-jdk

RPM 系:

$ ~ dnf install java-11-openjdk
# 或 yum install java-11-openjdk

检验:

$ ~ java -version

2. SBT 配置

编辑 ~/.sbt/repositories 文件,如果没有就新建,让它与下面的内容相同。注意事项:

  1. 除非你清楚自己在干什么,否则请不要随便改动这个文件,
  2. 这个文件里每行的顺序是有讲究的,不能随便调换,
  3. 复制的时候,注意不能错误地断行。
[repositories]
local
huaweicloud-maven: https://repo.huaweicloud.com/repository/maven/

3. 安装 SBT

https://www.scala-sbt.org/download.html, 按照页面上的指示安装最新版本的 SBT 即可。

4. 从一个简单的模板项目开始

https://github.com/scalacn/simple-scala-project-template-cn-1 , 克隆我们的项目模板:

$ ~ git clone https://github.com/scalacn/simple-scala-project-template-cn-1.git

然后这样跑一下:

$ ~ cd simple-scala-project-template-cn-1
$ ~ SBT_OPTS="-Dsbt.override.build.repos=true" sbt run

这个命令可能要耗费你几分钟的时间,请耐心等待。

请注意,SBT 第一次跑的时候,命令前加上 SBT_OPTS=”-Dsbt.override.build.repos=true”, 会强制 从配置好的国内源下载,大大加快速度。什么叫做“SBT第一次跑”呢?这是有讲究的。包括以下几种情况:

  1. 从来没有运行过 sbt 命令。
  2. 项目里的 SBT 版本升级了,比如从 1.2.0 升级到 1.3.0.
  3. 项目里用了从来没有被编译过的 Scala 版本,比如我们以前一直用 2.13.1, 忽然拿到个用 2.12.10 的项目。

当然这个参数也不是完全可靠的。出现问题的时候,我们可以把它去掉再跑一次。

特别注意:

  • 跑 sbt 命令之前,要确保已经在项目的根目录下。跑到项目的任何子目录下执行都是不行的。我已经观摩过 无数的新手掉进这个浅坑里爬不出来,制造了令人震惊的悲剧。

5. 使用 IntelliJ IDEA 编辑项目

从你的发行版包管理器,或者去它的官方主页下载安装最新版的 IntelliJ IDEA,并安装 Scala 插件。 一般情况下,写 Scala 代码用 免费的社区版就够了。请尽量用最新的版本 IDEA 和最新的 Scala 插件。

完成以后,用 IDEA 打开我们的模板项目就行了。请注意要用“打开(open)”而不是“导入(import)”。

注意事项:

  1. 打开一个新的项目之前,最好在第 4 步的命令行里,执行 sbt compile 命令,等它完成以后,再 用 IDEA 打开。
  2. 当已经打开的项目,配置发生改变的时候,比如任何 *.sbt 文件的内容有变化,IDEA 里面要记得刷新项目 (IDEA的自动刷新有时候可能不靠谱)。具体做法:打开 View -> Tool Windows -> sbt, 点击项目刷新按钮。 如果找不到这个窗口,说明项目配置有问题或者 IDEA 不能正确处理本项目。
  3. 当 IDEA 抽风的时候,先把这个项目在 IDEA 里面关了,手动删掉项目根目录下的 .idea 文件,执行 sbt clean compile, 然后再用 IDEA 打开。(这招对付 IDEA 抽风非常有用,至于为什么,我也不知道。)

6. 一个可以打包的单模块项目模板 TODO

7. 一个典型的的多模块项目模板 TODO

Scala 新手容易遇到的问题和解答 TODO