第二章:开发环境搭建

说实话,每次带新人入门 Scala,我最怕的就是环境搭建这一步。明明代码逻辑很简单,但光是把 JDK、IDEA、SBT 这些玩意儿配好,就能卡住不少人。我自己当年也踩过不少坑,今天就把这些经验一次性说清楚。

2.1 JDK 安装与配置

Scala 跑在 JVM 上,所以 JDK 是必须的。我个人习惯用 JDK 8 或 JDK 11,这两个版本最稳定,跟 Scala 的兼容性也最好。

下载与安装

  • 去 Oracle 官网或者 AdoptOpenJDK 下载对应系统的安装包
  • Windows 直接双击安装,Mac 用 brew 也行:brew install openjdk@11
  • Linux 用户用包管理器:sudo apt install openjdk-11-jdk

配置环境变量

嗯,这里要注意。很多新手配完 JDK 发现 java -version 能跑,但 javac 找不到。说白了就是 PATH 没配全。

# Windows 用户添加系统变量
JAVA_HOME = C:\Program Files\Java\jdk-11.0.12
PATH = %JAVA_HOME%\bin

# Mac/Linux 用户编辑 ~/.bashrc 或 ~/.zshrc
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

配完之后,打开终端验证一下:

java -version
javac -version
我曾经踩过的坑: 有一次我配完 JDK,java -version 显示的是 1.8,但项目需要 11。查了半天发现是系统里装了多个 JDK,PATH 里旧的版本优先级更高。解决办法是把新版本的 bin 目录放在 PATH 最前面。

2.2 IntelliJ IDEA 安装与 Scala 插件

编辑器这块,我强烈推荐 IntelliJ IDEA。Eclipse 也能用,但 IDEA 对 Scala 的支持好太多了,尤其是自动补全和类型推断提示,用起来很舒服。

安装步骤

  1. 去 JetBrains 官网下载 Community 版(免费)或 Ultimate 版(付费)
  2. 安装完成后启动 IDEA,在欢迎界面点击「Plugins」
  3. 搜索「Scala」,找到官方插件点击安装
  4. 重启 IDEA 使插件生效

你想想看,如果没有插件,IDEA 连 Scala 文件都识别不了,更别说语法高亮了。装好插件之后,新建项目时就能看到 Scala 选项了。

小技巧: 我建议把 IDEA 的「Auto Import」功能打开。这样你写代码时,IDEA 会自动帮你导入缺失的包,省去手动敲 import 的麻烦。

2.3 SBT 构建工具入门

SBT 是 Scala 的官方构建工具,类似于 Java 的 Maven 或 Gradle。我第一次用 SBT 时觉得它好慢,后来才发现是没配好镜像源。

安装 SBT

  • Mac:brew install sbt
  • Windows:去 sbt 官网下载 msi 安装包
  • Linux:echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list

配置国内镜像(重要)

为什么?因为 SBT 默认从 Maven 中央仓库下载依赖,那个速度...你懂的。我曾经等一个项目编译等了半小时,后来换成阿里云镜像,几分钟就搞定了。

~/.sbt/repositories 文件中添加:

[repositories]
local
aliyun: https://maven.aliyun.com/repository/public
central: https://repo1.maven.org/maven2

项目结构

一个典型的 SBT 项目长这样:

my-scala-project/
├── build.sbt          # 构建配置文件
├── project/
│   └── build.properties  # SBT 版本配置
└── src/
    ├── main/
    │   └── scala/     # 源代码
    └── test/
        └── scala/     # 测试代码

build.sbt 示例

name := "my-first-scala-project"
version := "1.0"
scalaVersion := "2.13.10"

libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-core" % "3.3.0",
  "org.apache.spark" %% "spark-sql" % "3.3.0"
)

这里 %% 的意思是自动匹配 Scala 版本号。比如你写 spark-core %% 3.3.0,SBT 会自动去找 spark-core_2.13-3.3.0.jar。这个设计很贴心,省得你手动拼版本号。

2.4 第一个 Scala 程序

环境都搭好了,我们来写个 Hello World 试试手。

用 IDEA 创建项目

  1. File → New → Project → Scala → sbt
  2. 填写项目名和路径,选择 JDK 版本
  3. 等待 IDEA 下载 SBT 和依赖(第一次会比较慢)

编写代码

src/main/scala 下新建一个 Hello.scala 文件:

object Hello {
  def main(args: Array[String]): Unit = {
    println("Hello, Scala!")
    println("欢迎来到大数据开发的世界")
  }
}

这里有个细节:Scala 的 main 方法必须写在 object 里,不能写在 class 里。为什么?因为 Scala 没有静态方法,object 里的方法相当于 Java 的静态方法。

运行程序

在 IDEA 里直接点击代码行号旁边的绿色三角形,或者用 SBT 命令:

sbt run

如果一切顺利,你会看到控制台输出:

Hello, Scala!
欢迎来到大数据开发的世界
避坑指南: 我曾经遇到过一个问题,代码写好了但运行时报错「找不到或无法加载主类」。检查了半天,发现是 object 的名字跟文件名不一致。Scala 要求文件名必须跟 object 的名字完全一样,大小写也要匹配。

2.5 总结

好了,环境搭建这块就讲完了。说白了就是三步:装 JDK、装 IDEA 加插件、配 SBT。每一步都有坑,但按我上面说的来,基本不会出问题。

你想想看,环境搭好了,后面学 Scala 语法、写 Spark 作业才有基础。下一章我们开始正式学 Scala 的基础语法,到时候我会用实际的大数据场景来举例,保证你学完就能用。

如果搭建过程中遇到问题,别慌。先检查环境变量配没配对,再检查 SBT 镜像源配没配。这两个地方最容易出问题。

公众号:蓝海资料掘金营,微信deep3321