Scala基础

下载安装

参考官网:https://www.scala-lang.org/

JDK兼容性

https://docs.scala-lang.org.cn/overviews/jdk-compatibility/overview.html

Scala REPL

Scala REPL是和JShell差不多的东西。一个交互式的环境,它允许用户逐行输入 Scala 代码,立即执行并获取结果。

Scala安装好后,直接命令行输入scala即可进入:

➜ scala
Welcome to Scala 2.13.16 (Java HotSpot(TM) 64-Bit Server VM, Java 17.0.7).
Type in expressions for evaluation. Or try :help.

scala> println("Hello World")
Hello World

scala> 1 + 2L
val res1: Long = 3

sbt 构建工具

SBT(Simple Build Tool)是Scala的项目构建工具

参考文档:

  1. sbt Reference Manual: https://www.scala-sbt.org/1.x/docs/index.html
  2. https://docs.scala-lang.org/zh-cn/scala3/book/tools-sbt.html

Apache ivy

SBT 是构建工具,负责项目构建的方方面面,如编译、测试、打包、运行等。在进行这些任务时,它需要外部库(依赖项),这些依赖项需要被下载和管理。
而 Apache Ivy 是 SBT 内部使用的依赖管理系统,负责处理下载和管理这些外部依赖的繁重工作。;SBT 利用 Ivy 来解析、下载和管理项目所需的库(JAR 包等),从 Maven 或 Ivy 仓库获取依赖,并将其缓存到本地(通常在用户目录的 .ivy2/local ),从而实现了对 Scala 项目依赖的自动化管理。
当你用 SBT 构建项目时,SBT 会调用内部的 Ivy 模块来处理 libraryDependencies 中定义的依赖。
SBT 配置告诉 Ivy 依赖的组织、模块和版本,Ivy 则负责具体的下载和缓存。
SBT 甚至支持 Ivy 独特的依赖解析功能,如版本号范围。

简单来说 sbt + ivy = maven

兼容性

JDK sbt mill
21 (LTS) 1.9.0 0.11.5
17 (LTS) 1.6.0 0.7.0
11 (LTS) 1.1.0 0.1.5
8 (LTS) 1.0.0 0.1.0

Scala 3.x 系列支持 JDK 8,以及 11 及更高版本。

下载安装:
直接从Github下载二进制压缩包:https://github.com/sbt/sbt

镜像源设置

SBT 通常使用 Maven 中央仓库下载依赖。

修改 build.sbt 文件

在build.sbt文件中添加以下内容:

resolvers ++= Seq(
  "Aliyun Maven" at "https://maven.aliyun.com/repository/public",
  "Maven Central" at "https://repo1.maven.org/maven2/"
)

也可以通过修改 SBT 全局配置文件~/.sbt/repositories来设置镜像。创建或编辑 ~/.sbt/repositories 文件,添加以下内容:

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

常见镜像源

  • 阿里云: https://maven.aliyun.com/repository/public
  • 清华大学: https://mirrors.tuna.tsinghua.edu.cn/git/maven/
  • 华为云: https://repo.huaweicloud.com/repository/maven/

常见问题

https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000094584-IDEA-Ultimate-2016-3-4-throwing-unable-to-find-valid-certification-path-to-requested-target-when-trying-to-refresh-gradle?page=1#community_comment_115000405564

仓库地址忽略SSL

// 仓库设置
resolvers ++= Seq(
  "Apache Repository" at "https://repository.apache.org/content/repositories/releases/",
  "Maven Central" at "https://repo1.maven.org/maven2/",
  "Cloudera Repository" at "https://repository.cloudera.com/artifactory/cloudera-repos/"
)

构建缓慢问题

创建 sbt 项目后,初始化项目很慢,最简单的项目都要几分钟左右。

如果想知道 sbt 构建时哪个操作比较耗时
参考:https://stackoverflow.com/questions/32588234/how-to-profile-the-time-spent-for-a-task-in-sbt

1.开启增量编译

在SBT中开启增量编译可以减少重复编译的时间。可以在build.sbt文件中添加以下内容:

// 开启增量编译
incremental := true

2.设置sbt使用的内存

// 并行执行设置
Test / parallelExecution := false

// 内存设置
run / fork := true
run / javaOptions ++= Seq(
  "-Xms512M",
  "-Xmx2G",
  "-XX:MaxPermSize=512M"
)
posted @ 2025-07-30 21:30  vonlinee  阅读(19)  评论(0)    收藏  举报