├── .gitignore ├── LICENSE └── README.org /.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | *.log 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Scala 中国用户组(ScalaCN) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.org: -------------------------------------------------------------------------------- 1 | #+TITLE: Scala 新手入门指南 2 | #+DATE: 2019-11-11 Monday 12:43:12 3 | #+LATEX_CLASS: org-article 4 | #+AUTHOR: 凤凰木 5 | #+EMAIL: weiwen@weiwen.org 6 | 7 | * 前言 8 | 9 | 本教程旨为完全的 Scala 新手在提供一个最简洁最直接的上手导引。操作系统环境: Linux. 10 | 11 | * 直接上手指南 12 | 13 | 如果你是完全的 Scala 新手,请按顺序做下面的 1~7 步。 14 | 15 | ** 1. 安装 JDK 16 | 17 | Debian 系: 18 | 19 | #+BEGIN_SRC bash 20 | $ ~ sudo apt install openjdk-11-jdk 21 | #+END_SRC 22 | 23 | RPM 系: 24 | 25 | #+BEGIN_SRC bash 26 | $ ~ dnf install java-11-openjdk 27 | # 或 yum install java-11-openjdk 28 | #+END_SRC 29 | 30 | 检验: 31 | 32 | #+BEGIN_SRC bash 33 | $ ~ java -version 34 | #+END_SRC 35 | 36 | ** 2. SBT 配置 37 | 38 | 编辑 =~/.sbt/repositories= 文件,如果没有就新建,让它与下面的内容相同。注意事项: 39 | 1. 除非你清楚自己在干什么,否则请不要随便改动这个文件, 40 | 2. 这个文件里每行的顺序是有讲究的,不能随便调换, 41 | 3. 复制的时候,注意不能错误地断行。 42 | 43 | 44 | #+BEGIN_SRC bash 45 | [repositories] 46 | local 47 | huaweicloud-maven: https://repo.huaweicloud.com/repository/maven/ 48 | #+END_SRC 49 | 50 | ** 3. 安装 SBT 51 | 52 | 去 https://www.scala-sbt.org/download.html, 按照页面上的指示安装最新版本的 SBT 即可。 53 | 54 | ** 4. 从一个简单的模板项目开始 55 | 56 | 去 https://github.com/scalacn/simple-scala-project-template-cn-1 , 克隆我们的项目模板: 57 | 58 | #+BEGIN_SRC bash 59 | $ ~ git clone https://github.com/scalacn/simple-scala-project-template-cn-1.git 60 | #+END_SRC 61 | 62 | 然后这样跑一下: 63 | 64 | #+BEGIN_SRC bash 65 | $ ~ cd simple-scala-project-template-cn-1 66 | $ ~ SBT_OPTS="-Dsbt.override.build.repos=true" sbt run 67 | #+END_SRC 68 | 69 | 这个命令可能要耗费你几分钟的时间,请耐心等待。 70 | 71 | 请注意,SBT 第一次跑的时候,命令前加上 SBT_OPTS="-Dsbt.override.build.repos=true", 会强制 72 | 从配置好的国内源下载,大大加快速度。什么叫做“SBT第一次跑”呢?这是有讲究的。包括以下几种情况: 73 | 1. 从来没有运行过 sbt 命令。 74 | 2. 项目里的 SBT 版本升级了,比如从 1.2.0 升级到 1.3.0. 75 | 3. 项目里用了从来没有被编译过的 Scala 版本,比如我们以前一直用 2.13.1, 忽然拿到个用 2.12.10 的项目。 76 | 77 | 当然这个参数也不是完全可靠的。出现问题的时候,我们可以把它去掉再跑一次。 78 | 79 | 特别注意: 80 | - 跑 sbt 命令之前,要确保已经在项目的根目录下。跑到项目的任何子目录下执行都是不行的。我已经观摩过 81 | 无数的新手掉进这个浅坑里爬不出来,制造了令人震惊的悲剧。 82 | 83 | ** 5. 使用 IntelliJ IDEA 编辑项目 84 | 85 | 从你的发行版包管理器,或者去它的官方主页下载安装最新版的 IntelliJ IDEA,并安装 Scala 插件。 一般情况下,写 Scala 代码用 86 | 免费的社区版就够了。请尽量用最新的版本 IDEA 和最新的 Scala 插件。 87 | 88 | 完成以后,用 IDEA 打开我们的模板项目就行了。请注意要用“打开(open)”而不是“导入(import)”。 89 | 90 | 注意事项: 91 | 1. 打开一个新的项目之前,最好在第 4 步的命令行里,执行 sbt compile 命令,等它完成以后,再 92 | 用 IDEA 打开。 93 | 2. 当已经打开的项目,配置发生改变的时候,比如任何 *.sbt 文件的内容有变化,IDEA 里面要记得刷新项目 94 | (IDEA的自动刷新有时候可能不靠谱)。具体做法:打开 View -> Tool Windows -> sbt, 点击项目刷新按钮。 95 | 如果找不到这个窗口,说明项目配置有问题或者 IDEA 不能正确处理本项目。 96 | 3. 当 IDEA 抽风的时候,先把这个项目在 IDEA 里面关了,手动删掉项目根目录下的 .idea 文件,执行 97 | sbt clean compile, 然后再用 IDEA 打开。(这招对付 IDEA 抽风非常有用,至于为什么,我也不知道。) 98 | 99 | ** TODO 6. 一个可以打包的单模块项目模板 TODO 100 | ** TODO 7. 一个典型的的多模块项目模板 TODO 101 | 102 | * TODO Scala 新手容易遇到的问题和解答 TODO 103 | --------------------------------------------------------------------------------