Skip to content

scalacn/scala-getting-started-tutorial-cn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published