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 sbt
bash
sudo dnf install sbt
bash
wget https://github.com/sbt/sbt/releases/download/v1.9.7/sbt-1.9.7.tgz
bash
tar -xzf sbt-1.9.7.tgz
sudo mv sbt /usr/local/
echo 'export PATH=$PATH:/usr/local/sbt/bin' >> ~/.bashrc
source ~/.bashrc
sbt 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)通常是快速解决的途径。