Sbt (программное обеспечение) - sbt (software)
Оригинальный автор (ы) | Марк Харра |
---|---|
Разработчики) | 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.