Перейти до вмісту

Sbt

Матеріал з Вікіпідручника
(Перенаправлено з Scala/Sbt)

Sbt - simple-build-tool, build tool для Scala

Встановлення

[ред.]

Windows

[ред.]

Скачайте і запустіть msi інсталятор за посиланням — http://www.scala-sbt.org/0.13/docs/Installing-sbt-on-Windows.html

Linux

[ред.]

Встановіть deb або rpm пакет, коротка інструкція — http://www.scala-sbt.org/download.html

створення проекту

[ред.]
  • Створіть каталог, де буде знаходитись ваш проект.
  • Перейдіть у нього і запустіть з командного рядка sbt
  • Введіть відповіді на питання
Project does not exist, create new project? (y/N/s) y
Name: sbt-tutorial
Organization: wikibooks
Version [1.0]:
Scala version [2.9.0]: 
sbt version [0.7.7]:
  • Зачекайте поки sbt скачає необхідні бібліотеки і створить проект.
  • коли з'явиться запрошення командного рядка sbt >, для виходу наберіть quit

Структура проекту

[ред.]

Каталоги проекту sbt подібні до проекту Maven

Коди

[ред.]
src/
    main/
      resources/
         <файли для включення в jar проекту>
      scala/
         <коди проекту на Scala>
      java/
         <коди проекту на Java>
    test/
      resources
         <файли для включення в jar для тестування>
      scala/
         <коди тестів на Scala>
      java/
         <коди тестів на Java>

Залежності

[ред.]

Необхідні для проекту залежності (бібліотеки) кладуться у каталог lib. Також можна налаштувати автоматичне керування залежностями.

Налаштування

[ред.]

Налаштування зберігаються у project/build.properties

#Project properties
project.organization=wikibooks
project.name=sbt-tutorial
sbt.version=0.7.7
project.version=1.0
build.scala.versions=2.9.0
project.initialize=false

Налаштування проекту

[ред.]

Визначення проекту зберігається у каталозі project/build. Визначення проекту - це клас мовою Scala, який реалізує sbt.Project. Зазвичай це робиться наслідуванням від sbt.DefaultProject.

Приклад пустого визначення проекту:

import sbt._

class EmptyProject(info: ProjectInfo) extends DefaultProject(info)

автоматичне керування залежностями

[ред.]