sbtを使ったプロジェクト作成と管理

Scalaプロジェクトの構築および管理には、sbt(Simple Build Tool)が標準的に用いられます。sbtはScalaおよびJavaプロジェクトのビルドツールであり、依存関係の管理、コンパイル、テスト、実行、パッケージングなどを統一的に扱えます。

以下では、sbtを使ったプロジェクト作成と管理について、詳細に説明します。


1. sbtのインストール

sbtは公式サイト(https://www.scala-sbt.org/)からインストールできます。主要なインストール方法:

  • macOS: brew install sbt

  • Ubuntu: パッケージリポジトリ追加後に sudo apt install sbt

  • Windows: MSIインストーラーを使用


2. プロジェクトの作成手順

手動でディレクトリ構造を作る場合

bash
mkdir my-scala-app cd my-scala-app mkdir -p src/main/scala mkdir -p src/test/scala touch build.sbt

build.sbt の基本構成

scala
name := "my-scala-app" version := "0.1.0" scalaVersion := "2.13.12"

これにより、プロジェクト名・バージョン・Scalaのバージョンを指定できます。


3. プロジェクト構成(標準的な構造)

css
my-scala-app/ ├── build.sbt ├── project/ │ └── build.properties ├── src/ │ ├── main/ │ │ └── scala/ │ │ └── Main.scala │ └── test/ │ └── scala/ │ └── MainSpec.scala

build.properties の内容(必須)

properties
sbt.version=1.9.6

4. ソースコードの作成

src/main/scala/Main.scala

scala
object Main extends App { println("Hello, sbt!") }

5. sbtの基本コマンド

コマンド 説明
sbt sbtのシェルを起動
compile ソースコードをコンパイル
run メインクラスを実行(App使用時)
test テストコードを実行
package JARファイルを作成
console Scala REPLを起動(依存も読み込む)
clean 出力先ディレクトリを削除
reload build.sbt変更時の再読み込み

6. 依存ライブラリの追加

例えば、ScalaTestを使いたい場合は build.sbt に以下を追加します:

scala
libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.18" % Test

この記述で、Scalaのバージョンに合わせたScalaTestをテストスコープに導入できます。


7. プラグインの追加(例:sbt-assembly)

sbt-assembly を使うと、fat JAR(依存込みJAR)の作成が可能になります。

手順

  1. project/plugins.sbt を作成し、以下を追加:

scala
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "1.1.0")
  1. build.sbt にも追加設定が必要です:

scala
enablePlugins(AssemblyPlugin)

まとめ

sbtはScalaプロジェクトの標準的なビルドツールであり、以下の特徴を持ちます。

  • 柔軟な設定(build.sbt)

  • 再利用可能なプラグイン機構

  • 依存管理(Ivy/Mavenリポジトリを使用)

  • テスト、パッケージング、デプロイ支援

sbtを理解することで、Scalaの開発効率を大幅に高めることができます。

生成日:2025/05/04