Linux 中的 SBT 是什么?
SBT(Simple Build Tool,现全称 Scala Build Tool)是专为 Scala 和 Java 项目设计的现代化构建工具,类似于 Java 中的 Maven 或 Gradle,但针对 Scala 生态进行了深度优化。它支持依赖管理、增量编译、测试、打包等功能,是 Scala 开发的主流工具之一。
依赖管理
build.sbt 文件定义项目依赖(类似 Maven 的 pom.xml)。增量编译
交互式 Shell
sbt console,支持实时执行 Scala 代码或调试。插件生态系统
多项目支持
bash
sudo apt-get install sbtbash
sudo dnf install sbtbash
wget https://github.com/sbt/sbt/releases/download/v1.9.7/sbt-1.9.7.tgzbash
tar -xzf sbt-1.9.7.tgz
sudo mv sbt /usr/local/
echo 'export PATH=$PATH:/usr/local/sbt/bin' >> ~/.bashrc
source ~/.bashrcsbt sbtVersion
输出应显示安装的版本号(如 1.9.7)。
创建新项目
sbt new scala/hello-world.g8 # 使用模板生成项目
常用命令
sbt compile:编译代码。sbt run:运行主程序。sbt test:执行测试。sbt package:生成 JAR 包。sbt console:进入 Scala REPL。项目结构
my-project/
├── build.sbt # 项目配置
├── src/
│ ├── main/
│ │ ├── scala/ # Scala 源码
│ │ └── java/ # Java 源码
│ └── test/ # 测试代码
└── project/ # 插件和元配置
依赖下载慢
在 ~/.sbt/repositories 中添加国内镜像(如阿里云):
[repositories]
local
maven-aliyun: https://maven.aliyun.com/repository/public
内存不足
调整 JVM 内存设置(在 ~/.sbtopts 中):
-Xmx2G -Xss2M
版本冲突
在 build.sbt 中明确指定 Scala 和库的版本:
scalaVersion := "2.13.12"
libraryDependencies += "org.apache.spark" %% "spark-core" % "3.5.0"
SBT 是 Scala 开发者的核心工具,尤其在 Linux 环境下通过命令行能高效管理项目。掌握其基本用法后,可结合插件(如 sbt-assembly 打包 Fat JAR)进一步优化工作流。遇到问题时,查阅官方文档或社区资源(如 Stack Overflow)通常是快速解决的途径。