Sbt是Scala社区中事实上的构建工具。
习惯于其他构建工具,您将熟悉这些命令
- clean –删除由构建产生的文件,例如生成的源,已编译的类和任务缓存。
- 编译–编译源
- 测试–执行所有测试
- 包–产生主要工件,例如二进制jar。 这通常是实际执行打包任务的别名。
- help –显示此帮助消息或在请求的命令上打印详细的帮助(运行“ help”)。
- console –用类路径上的项目类启动Scala解释器。
然后我们有一些额外的命令,例如
-
- run –运行主类,并传递命令行中提供的参数。
一项关键功能是新命令。
例如,通过使用new,我们可以使用giter8从指定的模板(例如scala-seed.g8)创建项目。
sbt new scala/scala-seed.g8
...
Minimum Scala build.
name [My Something Project]: hello
Template applied in ./hello
上一片段创建了一个名为hello的项目。
文件build.sbt包含一系列称为设置表达式的键值对。 左侧是键,右侧是主体。
有三种类型的键。
- SettingKey [T]:一次计算值的键(计算值
加载子项目时,并保留在周围)。 - TaskKey [T]:一个值的键,称为任务,必须重新计算
每次都有潜在的副作用。 - InputKey [T]:具有命令行参数作为输入的任务的键。
例如,如果我们要向我们的上一个打印打招呼的项目中添加额外的任务,则应将以下行添加到build.sbt文件中。
import Dependencies._
lazy val hello = taskKey[Unit]("An example task")
lazy val root = (project in file(".")).
settings(
hello := { println("Hello!") },
inThisBuild(List(
organization := "com.example",
scalaVersion := "2.12.2",
version := "0.1.0-SNAPSHOT"
)),
name := "Hello",
libraryDependencies += scalaTest % Test
)
我们可以运行任务,也可以要求有关该任务的更多信息。
>sbt
> hello
Hello!
[success] Total time: 0 s, completed May 1, 2017 6:08:36 PM
> help hello
An example task
>
根据项目和所使用的插件,将定义其他任务和设置。
在下一篇文章中,我们将检查play和sbt集成以及一些基本命令。