sbt
Scalaのビルドツール。産業界でデファクトスタンダードの地位にあるのでまずはこれを使うことになる。ペライチのスクリプトを動かしたいのであればScala CLIを使ってもいい。 インストールのしかた
Coursierを使うのが楽
cs setupすると勝手にsbtも入れてくれる
cs update sbtするとバージョンも上がる
プロジェクトの作りかた
sbt newするとテンプレを選べるのでそれを選ぶとディレクトリが掘られる
定番はscala/scala3.g8
中身はただのgiter8
giter8自体もScalaで書かれている。
code:shell
% sbt new
info launcher getting org.scala-sbt sbt 1.10.2 (this may take some time)... Welcome to sbt new!
Here are some templates to get started:
a) scala/toolkit.local - Scala Toolkit (beta) by Scala Center and VirtusLab
b) typelevel/toolkit.local - Toolkit to start building Typelevel apps
c) sbt/cross-platform.local - A cross-JVM/JS/Native project
d) scala/scala3.g8 - Scala 3 seed template
e) scala/scala-seed.g8 - Scala 2 seed template
f) playframework/play-scala-seed.g8 - A Play project in Scala
g) playframework/play-java-seed.g8 - A Play project in Java
i) softwaremill/tapir.g8 - A tapir project using Netty
m) scala-js/vite.g8 - A Scala.JS + Vite project
n) holdenk/sparkProjectTemplate.g8 - A Scala Spark project
o) spotify/scio.g8 - A Scio project
p) disneystreaming/smithy4s.g8 - A Smithy4s project
q) quit
Select a template: d
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
A template to demonstrate a minimal Scala 3 application
Template applied in /home/windymelt/temp/sbtnewtest/./foobar
ちなみに引数で直接テンプレを渡すほうが速い
sbt new scala/scala3.g8
-o .とすると新規にディレクトリを掘らずにその場にテンプレートを展開してくれる
sbtが遅いときに読むコーナー
毎回シェルからsbt compileとかsbt testを入力していませんか?
sbtは都度ビルドサーバを立ち上げるので遅いです!!
まずsbtを立ち上げて、インタラクティブシェルの中でcompileとかtestとかrunしましょう
code:shell
% sbt
sbt> compile
sbt> test