CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Scala 语言入门/课时/构建工具
RawBlame
课时目录12 节

Scala 语言入门

  1. 01Scala 是什么
  2. 02基础语法
  3. 03OOP 与模式匹配
  4. 04集合与高阶函数
  5. 05函数式编程
  6. 06类型系统
  7. 07构建工具
  8. 08后端框架
  9. 09数据与 JSON
  10. 10测试
  11. 11并发与流
  12. 12综合练习

构建工具

sbt、Mill、Scala.js/Native 概览。

30 分钟

构建工具

Scala 项目常用 sbt(Simple Build Tool),也可选 Mill;Scala.js 编译到 JavaScript,Scala Native 编译到原生二进制。对照 /roadmaps/scala「Build Tools」节点。

学习目标

  • 读懂 sbt 项目结构与 build.sbt 常用配置
  • 运行 compile / test / run 与依赖管理
  • 了解 Mill、Scala.js、Scala Native 的定位

核心概念

sbt 项目结构

bookmark-api/
├── build.sbt
├── project/
│   └── build.properties    # sbt 版本
└── src/
    ├── main/scala/
    │   └── Main.scala
    └── test/scala/
        └── MainSuite.scala

sbt new 或 g8 模板可快速脚手架;依赖写法类似 Maven 坐标。

build.sbt 示例

ThisBuild / scalaVersion := "3.3.3"
ThisBuild / organization := "com.coderoadmap"
ThisBuild / version      := "0.1.0-SNAPSHOT"

lazy val root = (project in file("."))
  .settings(
    name := "bookmark-api",
    libraryDependencies ++= Seq(
      "org.scalatest" %% "scalatest" % "3.2.18" % Test,
      "io.circe"      %% "circe-generic" % "0.14.6",
      "io.circe"      %% "circe-parser"  % "0.14.6"
    )
  )

%% 自动追加 Scala 二进制版本后缀;% Test 表示测试 scope。

常用命令

sbt compile
sbt test
sbt run
sbt "runMain com.coderoadmap.Main"
sbt clean assembly          # 需 sbt-assembly 插件打 fat jar
// src/main/scala/Main.scala
package com.coderoadmap

@main def run(): Unit =
  println("sbt run OK")

Mill 与跨平台概览

工具特点
sbt生态最大、插件多、学习曲线陡
Mill配置更直观、增量构建快
Scala.js前端或与 TS 互操作
Scala Native无 JVM 的原生可执行文件

Java 团队若已有 Maven/Gradle 多模块项目,也可用 Gradle Scala Plugin 或 Maven scala-maven-plugin 集成 Scala 源码。

与 Java 对照

ScalaJava
sbt / MillMaven / Gradle
libraryDependencies
<dependencies> / implementation
src/main/scalasrc/main/java
fat jar (assembly)Spring Boot repackage / shade

同一仓库可混编 Java 与 Scala:src/main/scala 与 src/main/java 并存。

练习

  • 用 sbt new 创建项目,添加 scalatest 依赖并跑通测试
  • 在 build.sbt 增加 circe 依赖,编译一个小 JSON 样例
  • 对比 sbt 与 Gradle 在你现有 Java 项目中的集成方式

小结

sbt 是 Scala 默认构建入口;理解目录与依赖坐标即可上手。 下一课后端框架概览。见 scala-essentials。

加载本节练习…
← 上一课类型系统下一课 →后端框架