25.1. sbt

W tym rozdziale przedstawiona jest przykładowa aplikacja napisana w języku Scala — program grający w szachy. Program wyświetla planszę i pozwala użytkownikowi grać białymi lub czarnymi. Przeciwnikiem gracza jest komputer. Dodatkowo, wyjdziemy poza narzędzia udostępniane w standardowej dystrybucji języka Scala i skorzystamy z narzędzia sbt służącego do automatyzacji budowy projektu oraz z projektu scala-js pozwalającego uruchamiać kod języka Scala w przeglądarce internetowej.

Program sbt może być ściągnięty ze strony http://www.scala-sbt.org/. Po zainstalowaniu go, należy uruchomić polecenie sbt (lub sbt.bat) z katalogu bin. Przy pierwszym uruchomieniu program spróbuje ściągnąć z Internetu na dysk potrzebne do jego działania składniki. Rezultat może wyglądać podobnie do poniższego.

$ sbt
Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Getting org.fusesource.jansi jansi 1.11 ...
downloading https://jcenter.bintray.com/org/fusesource/jansi/jansi/1.11/jansi-1.11.jar ...
        [SUCCESSFUL ] org.fusesource.jansi#jansi;1.11!jansi.jar (915ms)
:: retrieving :: org.scala-sbt#boot-jansi
        confs: [default]
        1 artifacts copied, 0 already retrieved (111kB/205ms)
Getting org.scala-sbt sbt 0.13.9 ...
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt/0.13.9/jars/sbt.jar ...
        [SUCCESSFUL ] org.scala-sbt#sbt;0.13.9!sbt.jar (4192ms)
downloading https://jcenter.bintray.com/org/scala-lang/scala-library/2.10.5/scala-library-2.10.5.jar ...
        [SUCCESSFUL ] org.scala-lang#scala-library;2.10.5!scala-library.jar (58467ms)
…
[info] Loading project definition from H:\jps2\examples\chess\project
[info] Updating {file:/H:/jps2/examples/chess/project/}chess-build...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Set current project to Chess (in build file:/H:/jps2/examples/chess/)
>

Po ściągnięciu potrzebnych plików sbt pokazał znak zachęty, oczekując na polecenia. Na razie zakończmy działanie programu wykonując polecenie exit.

> exit

$

Utwórzmy prosty plik definicji naszego projektu, który zostanie później załadowany przez sbt. Plik należy nazwać build.sbt i umieścić w katalogu, w którym umieścimy pliki projektu. Treść pliku jest pokazana poniżej.

Plik build.sbt:
name := "Chess" 
version := "1.0" 
scalaVersion := "2.11.7" 

W wierszu definiujemy nazwę projektu, w wierszu jego numer wersji. W wierszu specyfikujemy wersję języka Scala, którą chcemy wykorzystywać w tym projekcie. Dodatkowo, w podkatalogu project utwórzmy plik build.properties, w którym możemy wyspecyfikować wersję sbt, której chcemy użyć.

Plik build.properties:
sbt.version=0.13.9

Możemy teraz ponownie uruchomić sbt oraz sprawdzić, wykorzystując polecenie show, że ustawienia zostały zaczytane.

$ sbt
…
> show name
[info] Chess
> show version
[info] 1.0
> show scalaVersion
[info] 2.11.7

Język programowania Scala Wydanie 2. Copyright © Grzegorz Balcerek 2016

Licencja Creative Commons

Ten utwór jest dostępny na licencji Creative Commons Uznanie autorstwa-Na tych samych warunkach 4.0 Międzynarodowe.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.