📌  相关文章
📜  SBT (1)

📅  最后修改于: 2023-12-03 15:34:49.065000             🧑  作者: Mango

SBT 介绍

简介

SBT(Scala Build Tool) 是一个基于JVM的构建工具,用于构建Scala项目。它采用声明式语法和基于任务的模型来定义构建,任务可以从其他任务中构建,并且可以定义多个构建变体,例如不同的环境(开发环境、测试环境、生产环境等)以及不同的编译器选项。SBT的目标是提供一个快速、可重现和可扩展的构建系统。

特点
  • 快速:sbt使用增量编译技术来加速编译速度。
  • 易于配置:sbt使用基于scala的DSL(领域特定语言)来定义构建,易于理解和维护。
  • 插件化:sbt可以轻松地通过插件来扩展和定制构建过程。
  • 多种构建变体:sbt支持多种构建变体,使得开发人员可以轻松地在不同的环境中编译和测试代码。
  • 跨平台:sbt可以在多个平台上运行,包括Windows、Linux和Mac OS X。
使用
安装

在MacOS或Linux中,可以使用如下命令安装sbt:

$ echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 642AC823
$ sudo apt-get update
$ sudo apt-get install sbt

在Windows中,可以从 官网 下载 Windows 安装包进行安装。安装完成后,在命令行中输入 sbt 命令即可进入 sbt shell。

构建

在项目的根目录下创建 build.sbt 文件,该文件中定义了项目的配置信息、依赖和编译选项等等。例如:

name := "my-project"
version := "1.0"
scalaVersion := "2.12.8"

libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.3"

上述配置文件定义了项目的名称为 my-project,版本为 1.0,使用 Scala 2.12.8 进行编译,并且依赖 Apache Spark 的核心库(版本为 2.4.3)。

运行

使用 sbt shell 运行项目中的代码非常简单,只需要在 sbt shell 中输入 run 命令即可。sbt会编译并运行项目中的代码。例如:

sbt:my-project> run
[info] Updating ...
[info] Done updating.
[info] Compiling ...
[info] Done compiling.
[info] Running Main
Hello, sbt!
[success] Total time: 4 s, completed Jul 15, 2019, 4:47:34 PM
打包

使用 sbt package 命令可以将项目打包为 Jar 包或者其他格式的文件。例如:

sbt:my-project> package
[info] Updating ...
[info] Done updating.
[info] Compiling ...
[info] Done compiling.
[info] Packaging ...
[info] Done packaging.
[success] Total time: 8 s, completed Jul 15, 2019, 5:03:51 PM

打包完成后,Jar 包会被保存到 target/scala-2.xx/ 目录下,其中 2.xx 为编译所使用的 Scala 版本。具体文件名可以在 build.sbt 文件中进行配置。

总结

SBT 是一个功能强大、易于配置的构建工具,被广泛地应用于 Scala 项目中。通过 sbt,开发者可以轻松地配置依赖关系、打包文件以及运行项目中的代码。同时,sbt 还支持插件化和多种构建变体等特性,使得开发者可以根据项目的需要来扩展和定制构建过程。