Sbt

Матеріал з Вікіпідручника
Перейти до: навігація, пошук

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

Зміст

Встановлення [ред.]

Windows [ред.]

  1. Створіть каталог c:\sbt
  2. скачайте останню версію sbt-launch.jar (на момент написання - sbt-launch-0.7.7.jar) у с:\sbt
  3. створіть файл sbt.bat у каталозі c:\sbt наступного вмісту
set SCRIPT_DIR=%~dp0
java -Xmx512M -jar "%SCRIPT_DIR%sbt-launch-0.7.7.jar" %*
  1. Додайте до змінної середовища PATH шлях c:\sbt

створення проекту [ред.]

  • Створіть каталог, де буде знаходитись ваш проект.
  • Перейдіть у нього і запустіть з командного рядка 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)

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