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.g 8 ... Minimum Scala build. name [My Something Project] : hello Template 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 > hello Hello! [success] Total time : 0 s, completed May 1 , 2017 6 : 08 : 36 PM > help hello An example task > |
В зависимости от проекта и используемого плагина будут определены дополнительные задачи и настройки.
В следующем посте мы проверим интеграцию play и sbt, а также некоторые основные команды.
Ссылка: | Основы SBT от нашего партнера JCG Эммануила Гкациоураса в блоге gkatzioura . |