1. SBTプロジェクトファイルの準備
今回は、JSONライブラリのGSONを使ってJSONのパースをするプログラムとそのテストを作りたいと思います。
まず、適当に空のディレクトリを作成しそこへ移動してください。
1.1 sbtプロジェクトファイルの用意
projectディレクトリを作成し、Build.scalaというファイルを作成し以下のコードを書いてください。
import sbt._
import Keys._
object HelloBuild extends Build {
lazy val root = Project(id = "hello",
base = file("."),
settings = Project.defaultSettings ++ Seq(
version := "0.0.1-SNAPSHOT"
)
)
}
あとは、sbtを実行(すでに実行している場合は、reloadで再読み込み)を行なってエラーが起きないことを確認してください。
これが、最小構成のsbtのプロジェクトファイルになります。
sbtの思想を簡単に説明しておくと、sbtでは全ての設定がSettingKeyとValueのペアとなっています。この例では、
version := "0.0.1-SNAPSHOT"
の部分が設定に相当し、versionというSettingKeyに”0.0.1-SNAPSHOT”というValueを設定しています。その他の設定もこのようにKeyValueのペアとして表現されます。
2. 基本設定
2.1 groupIdやartifactId等の設定
mavenのgroupIdやartifactIdなどの基本情報の設定は以下のように対応します。
これ以外の使用可能なSettingKeyはsbt.Keysに定義されています。
| Mavenでのタグ名 | SettingKey |
| groupId | organization |
| artifactId | Project@id + “_” + scalaVersion |
| version | version |
| description | description |
import sbt._
import Keys._
object HelloBuild extends Build {
lazy val root = Project(id = "sbt-gson",
base = file("."),
settings = Project.defaultSettings ++ Seq(
version := "0.0.1-SNAPSHOT",
organization := "com.geishatokyo",
description := "this is gson program"
)
)
}
はpomファイルの
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>com.geishatokyo</groupId>
<artifactId>sbt-gson_2.9.1</artifactId>
<packaging>jar</packaging>
<description>this is gson program</description>
<version>0.0.1-SNAPSHOT</version>
<name>sbt-gson</name>
...
</project>
と等価になります。なお、sbtコンソールで
make-pom
コマンドを使用するとpomファイルを生成してくれます。
2.2 scala version
sbtではコンパイルに使用するscalaのバージョンと、CrossVersionBuildの設定が簡単に行えます。
現在はデフォルトではscala2.9.1が使用されます。
SettingKeyは
| scalaVersion | String | scalaVersion := “2.9.1″ |
| crossScalaVersions | Seq[String] | crossScalaVersion := Seq(“2.7.7″,”2.8.1″,”2.9.0″,”2.9.0-1″,”2.9.1″) |
crossScalaVersionsを設定しておくと、
+compile +publish
と+を付けてコマンド実行すると設定したscala version全てでビルドや配置を行なってくれます。
今回はscala2.9.1とscala2.9.0でコンパイルします。
最終的なBuild.scalaは以下のようになります。
import sbt._
import Keys._
object HelloBuild extends Build {
lazy val root = Project(id = "sbt-gson",
base = file("."),
settings = Project.defaultSettings ++ Seq(
version := "0.0.1-SNAPSHOT",
organization := "com.geishatokyo",
description := "this is gson program",
scalaVersion := "2.9.1",
crossScalaVersions := Seq("2.9.0-1","2.9.0")
)
)
}