habrahabr

Введение в sbt

  • воскресенье, 3 августа 2014 г. в 03:10:53
http://habrahabr.ru/post/231971/

Этим постом, я попробую начать серию переводов официальной документации, об инструменте, который при текущем росте языка Scala становится все более востребованным, но о котором тем не менее очень мало информации на русском языке.
Речь пойдет о sbt — системе сборки проектов для языка Scala (хотя, важно упомянуть, что Java проекты (и вообще любые другие) им так же могут собираться).
Статья является началом перевода документации с сайта проекта scala-sbt.org и так как это мой первый опыт перевода — буду рад любым замечаниям и правкам.
Так же, из-за того, что пока перевод оформлен в виде статьи, я буду пропускать моменты, которые смотрелись бы не совсем корректно, в контексте отдельной части руководства.

Предисловие


sbt, используя небольшое число концепций, предлагает гибкие решения сборки проектов.
Это руководство расскажет о некоторых моментах, которые необходимы для создания и поддержки решений по сборке с помощью sbt.
Данное руководство, очень рекомендовано к прочтению. Но, если вам некогда читать все, то самую важную информацию вы можете прочитать в разделах “Параметры .sbt сборки”, “Области сборок”, “Дополнительные параметры сборок”. Но, мы не обещаем, что эта хорошая идея поможет вам пропустить все страницы данного руководства.
Лучше всего читать этот документ последовательно, опираясь на пройденный ранее материал.
Спасибо, что используете sbt! Желаем вам получить от этого максимум удовольствия!

1. Установка sbt


Для создания sbt проекта вам нужно сделать следующие шаги:
  • Установить sbt и создать скрипт запуска
  • Создать простой проект “Hello world”
  • Создать директорию проекта с исходными файлами внутри
  • Описать параметры сборки
  • Прочитать как запустить sbt
  • Продолжить чтение руководства о параметрах sbt сборки

В конечном счете, установка сводиться к запуску JAR файла и shell скрипта. Но, мы опишем несколько путей для разных платформ, которые могут сделать установку менее утомительной.
Если у вас появились проблемы с запуском sbt, смотрите раздел “Примечания к установке”.

1.a. Установка под Mac

С помощью Macports
$ port install sbt
Homebrew
$ brew install sbt

1.b. Установка под Windows

Просто скачайте инсталятор msi и запустите его.

1.c. Установка под Linux

Официально поддерживаемые дистрибутивы:
RPM пакет
DEB пакет

В дальнейшем я расскажу о том, как можно скачать и настроить sbt вручную. А пока что, самое интересное.

2. Hello, World


Создаем директорию проекта с исходным кодом

Одним из корректных вариантов sbt проекта, может быть директория, содержащая один файл с исходным кодом. Попробуйте создать директорию hello с файлом hw.scala, со следующим содержимым:
object Hi {
  def main(args: Array[String]) = println("Hi!")
}

Теперь, в самой директории запустите sbt и наберите команду run в интерактивной консоле. В Linux или OS X это выглядить примерно так:
$ mkdir hello
$ cd hello
$ echo 'object Hi { def main(args: Array[String]) = println("Hi!") }' > hw.scala
$ sbt
...
> run
...
Hi!

При создании проекта, sbt работает в соответствии со следующими правилами:
  • Исходник лежит в корневой директории
  • Исходники лежат в директории src/main/scala или src/main/java
  • Тесты лежат в src/test/scala или src/test/java
  • Файлы ресурсов в src/main/resources или src/test/resources
  • Файлы jar в директории lib

По умолчанию, sbt соберет проект той версией scala, с помощью которой sbt был запущен сам.
Кроме запуска консоли, проект можно сразу запустить на выполнение командой sbt run.

Параметры сборки

Большинство проектов, все же нуждаются в более сложной настройке процесса сборки. В sbt основные параметры сборки хранятся в файле build.sbt в корневой директории проекта.
Например, если для нашего проекта hello создать файл настроек, то выглядеть бы он мог примерно так:
name := "hello"

version := "1.0"

scalaVersion := "2.10.3"

Обратите внимание на пустые строки. Это не просто так, они на самом деле требуются чтобы отделять строки в файле конфигурации и без них sbt выдаст ошибку. Подробнее мы вернемся к этому файлу в последующих разделах.

Установка версии sbt

Вы можете принудительно скачать и установить нужную версию sbt если пропишете в файле hello/project/build.properties следующую строчку:
sbt.version=0.13.5
Теперь, при запуске будет использоваться версия sbt 0.13.5. Если ее нет, то скрип скачает и установит ее в системе.
Хранить версию sbt следует именно в файле project/build.properties для избежания возможных колизий.

В качестве заключения


Для эксперимента, я решил ограничиться только этими самыми первыми разделами, и если реакция будет более-менее положительной, надеюсь продолжить переводить и остальные.

P.S. Буду очень признателен, за указанные неточности и замечания перевода. Спасибо!