Sbt — это инструмент де-факто для сборки в сообществе Scala.
Привыкнув к другим инструментам сборки, вы будете знакомы с командами
- clean — удаляет файлы, созданные сборкой, такие как сгенерированные источники, скомпилированные классы и кэши задач.
- compile — компилирует исходники
- test — выполняет все тесты
- package — производит основной артефакт, такой как бинарный кувшин Обычно это псевдоним для задачи, которая фактически выполняет упаковку.
- help — отображает это справочное сообщение или печатает подробную справку по запрошенным командам (запустите «help»).
- console — запускает интерпретатор Scala с классами проекта на пути к классам.
Тогда у нас есть дополнительные команды, такие как
-
- run — запускает основной класс, передавая аргументы, указанные в командной строке.
- tasks — перечисляет задачи, определенные для текущего проекта.
- reload — (Пере) загружает текущий проект или изменения в проекте плагинов или возвращает из него.
- console — запускает интерпретатор Scala с классами проекта на пути к классам.
Ключевой функциональностью является новая команда.
Например, используя new, мы можем создать проект из указанного шаблона (например, scala-seed.g8), используя giter8.
|
1
2
3
4
5
6
7
8
|
sbt new scala/scala-seed.g8...Minimum Scala build. name [My Something Project]: helloTemplate applied in ./hello |
Предыдущий фрагмент создает проект с именем hello.
Файл build.sbt содержит последовательность пар ключ-значение, называемых установочными выражениями. Левая сторона — это ключ, а правая сторона — это корпус.
Есть три типа ключей.
- SettingKey [T]: ключ для значения, вычисляемого один раз (значение вычисляется
при загрузке подпроекта и держится вокруг). - TaskKey [T]: ключ для значения, называемого задачей, которую необходимо пересчитать
каждый раз, потенциально с побочными эффектами. - InputKey [T]: ключ для задачи, аргументы командной строки которой являются входными.
Например, если мы хотим добавить еще одну задачу к нашему предыдущему проекту, которая печатает привет, то мы добавим следующие строки в файл build.sbt.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
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) |
Мы можем либо запустить задачу, либо запросить дополнительную информацию о ней.
|
1
2
3
4
5
6
7
|
>sbt> helloHello![success] Total time: 0 s, completed May 1, 2017 6:08:36 PM> help helloAn example task> |
В зависимости от проекта и используемого плагина будут определены дополнительные задачи и настройки.
В следующем посте мы проверим интеграцию play и sbt, а также некоторые основные команды.
| Ссылка: | Основы SBT от нашего партнера JCG Эммануила Гкациоураса в блоге gkatzioura . |