WikiDer > Sbt (программное обеспечение) - Википедия
| Оригинальный автор (ы) | Марк Харра | 
|---|---|
| Разработчики) | Lightbend и сообщество | 
| Стабильный выпуск | |
| Репозиторий |   | 
| Написано в | Scala | 
| Операционная система | Кроссплатформенность | 
| Платформа | Ява | 
| Тип | Автоматизация сборки | 
| Лицензия | Лицензия BSD | 
| Интернет сайт | Scala-SBT | 
сбт является Открытый исходный код инструмент сборки за Scala и Ява проекты, похожие на Апачи Maven и Муравей.
Его основные особенности:
- Встроенная поддержка компиляции кода Scala и интеграции со многими Scala рамки тестирования
 - Непрерывная компиляция, тестирование и развертывание
 - Инкрементальное тестирование и компиляция (повторно компилируются только измененные исходные коды, повторно запускаются только затронутые тесты и т. Д.)
 - Описания сборки, написанные на Scala с использованием DSL
 - Управление зависимостями с использованием Apache Ivy (который поддерживает репозитории в формате Maven)
 - Интеграция с интерпретатором Scala для быстрой итерации и отладки
 - Поддержка смешанных проектов Java / Scala
 
SBT - это де-факто инструмент сборки в сообществе Scala,[3] используется Поднять веб-фреймворк[4] и Play Framework.
Коммерческий магазин Scala, Lightbend Inc., назвал sbt "возможно лучшим инструментом для создания проектов Scala", заявив, что двумя его наиболее важными особенностями являются инкрементная компиляция и интерактивная оболочка.[5] При входе в режим непрерывной компиляции компилятор Scala создается только один раз, что исключает последующие затраты на запуск, а изменения исходного файла отслеживаются, так что перекомпилируются только затронутые зависимости. Интерактивная консоль позволяет изменять параметры сборки на лету и входить в Scala REPL вместе со всеми файлами классов проекта.[6] Популярность инкрементальной компиляции подтолкнула Typesafe к извлечению этой функции в виде независимого компонента под названием Zinc.[5]
sbt уже поступал обратно в стандартную библиотеку Scala раньше, когда его API процессов был принят в Scala 2.9.[7]
История
sbt был впервые публично объявлен 18 декабря 2008 года Марком Харра - его первоначальным автором. Первоначально это была аббревиатура от «Simple Build Tool», но теперь она известна просто как «sbt».[8]
Файлы сборки
Сборку sbt можно определить с помощью .sbt файл [9] Ниже приведен пример build.sbt определение сборки:
вал scalaTest   = "org.scalatest" %% "масштабный" % "3.0.5"вал akkaVersion = "2.4.2"вал акка, актер   = "com.typesafe.akka" %% "акка-актер" % akkaVersionвал akkaCluster = "com.typesafe.akka" %% "акка-кластер" % akkaVersion// Установите версию Scala, используемую этой сборкой, на 2.12.8.ThisBuild / scalaVersion := "2.12.8"ThisBuild / версия      := "0.1.0-SNAPSHOT"ThisBuild / организация := "com.example"ленивый вал корень = (проект в файл("."))  .совокупность(приветCore)  .зависит от(приветCore)  .настройки(    имя := "Привет",    // Добавляем одну зависимость для тестов.    libraryDependencies += scalaTest % Тест  )ленивый вал приветCore = (проект в файл("основной"))  .настройки(    имя := "Hello Core",    libraryDependencies += scalaTest % Тест,    // Добавляем несколько зависимостей.    libraryDependencies ++= Список(акка, актер, akkaCluster)  )Пример использования
sbt может быть вызван для каждой команды сборки, или он может перейти в интерактивный режим, если команда не задана. Чтобы очистить продукты сборки текущей сборки:
$ sbt cleanВ одной строке можно использовать несколько команд. Чтобы запустить один тест с именем «Foo» и затем опубликовать экспортированные jar-файлы:
$ SBT "testOnly Foo" публиковатьРасширяемость и интеграция
Функциональность sbt может быть расширена за счет архитектуры плагина.[10] Был создан специальный веб-сайт для плагинов, предоставленных сообществом, которые охватывают различные области, такие как подписание, упаковка, публикация и выпуск артефактов, подключение к другим службам, таким как блоги и базы данных, или интеграция с другими технологиями, такими как развертывание на платформе Android.[11]
Есть плагины для автоматического создания файлов проекта для Затмение и IntelliJ IDEA Иды. С другой стороны, Плагин IntelliJ IDEA позволяет интегрировать консоль sbt в IDEA, и проекты могут использовать sbt для сборки.
Сравнение и критика
Как и в случае с большинством программных инструментов, sbt нашел сторонников и критиков. Его часто сравнивают с Apache Maven, который является стандартным инструментом сборки в мире Java. В частности, предметно-ориентированный язык используемый для файлов сборки sbt, вызвал критику как загадочный по сравнению с чисто декларативным подходом Maven XML файлы. Кроме того, с переходом версии с 0.7 на 0.10 были внесены несовместимые изменения в формат файла и макет. Из-за того, что Maven и sbt достаточно молоды, было сказано, что Maven предоставляет большее количество плагинов и что документация sbt отсутствует, хотя другие говорят, что качество документации улучшается.[12]
Проект sbt использует sbt для сборки и считает, что собачье кормление это положительная особенность. К Debian проект, однако, считается круговая зависимость, что они пытаются минимизировать. В результате sbt еще нет в Debian.[13]
Смотрите также
Рекомендации
- ^ [1]
 - ^ eed3si9n (02.11.2020). «Анонс: сбт 1.4.2». eed3si9n.com. Получено 2020-11-07.
 - ^ Публичные репозитории, размещенные на github, в которых упоминается sbt
 - ^ Начало работы с Lift
 - ^ а б «Цинк и инкрементальная компиляция». блог typesafe. 13 августа 2012 г.. Получено 22 августа 2012.
 - ^ Гольдин, Евгений. "Инструмент сборки sbt Scala". Получено 7 мая 2012.
 - ^ "Scala 2.9.0 финал". 12 мая 2011. Получено 22 августа 2012.
 - ^ Часто задаваемые вопросы
 - ^ sbt: определение сборки .sbt
 - ^ "Плагины". сбт. Получено 17 октября 2014.
 - ^ "Плагины сообщества sbt". Получено 17 октября 2014.
 - ^ Coda Hale (29 ноября 2011 г.). "Остальная часть истории". Получено 22 августа 2012. Это запись в блоге, дающая контекст для связанной электронное письмо в котором намечены проблемы с sbt.
 - ^ «Журналы отчетов об ошибках Debian - # 639910, RFP: simple-build-tool - для проектов scala и java». Получено 28 июн 2015., включает беседу с разработчиком SBT.