The most used Scala Build Tools(SBT)

本文最后更新于:Thursday, December 3rd 2020, 11:50 am

有很多构建工具,比如 Ant, Maven, Gradle等等,但是 sbt是专门为Scala设计的。它前些日子还被Scala创始人Martin Odersky联合创办的Lightbend公司支持。

What is sbt

sbt 是一个交互式构建工具:你可以在Scala project中定义你的task,然后从交互式sbt shell 并行的运行它们。

Why sbt

  • 专为Scala和Java设计:它能使用多个Scala版本交叉编译你的项目。
  • 类型安全和并行的build.sbt:一个基于Scala的DSL(domain specific language),用于表示并行任务处理图谱。任何打字错误都会引发编译错误。
  • 快速迭代:使用Zinc 增量编译器和文件监视器,使得编辑-编译-测试循环达到快速并且递增
  • 可扩展性:我们只用在build.sbt中写入相应代码,就可以增加对新的任务或平台(比如Scala.js)的支持。
  • Join 100+ community-maintained plugins to share and reuse sbt tasks

Install sbt(1.4.4)

The sbt directory structure

  • 手动创建项目目录

    1
    2
    3
    4
    mkdir HelloWorld
    cd HelloWorld
    mkdir -p src/{main,test}/{java,resources,scala}
    mkdir project target

mark

项目主目录下的基本文件结构图
  • ​ 使用sbt命令行工具

    1
    sbt new scala/hello-world.g8    // 从Github仓库上拉下来项目模板

    mark

mark

目录结构和👆大同小异
1
2
3
4
5
6
7
8
- hello-world
- project (sbt uses this to install and manage plugins and dependencies)
- build.properties
- src
- main
- scala (All of your scala code goes here)
- Main.scala (Entry point of program) <-- this is all we need for now
- build.sbt (sbt's build definition file)

Running the project

1
sbt run

mark

Project management

build.sbt文件非常重要,你项目的Scala版本,依赖项全在里面有说明。

添加依赖后,你才可以在你的程序里面正常import;

发布的包可以在这里查看

mark

更多内容请见下一篇文章:【build.sbt 详解】😸


References

[1] Scala book

[2] GETTING STARTED WITH SCALA

[3] sbt reference