Scala入門記009 sbtでマルチプロジェクト その2
私の住んでいる北海道も、雪がだいぶ溶けて春らしくなってきました。
最近はScalaのマクロを色々とさわって勉強してみたりしてします。
前回のその1ではプロジェクトのファイルが
- Build.scala x 1
- build.sbt x 3
の4つに分かれていました。
今回はこれをBuild.scalaの1つにまとめる設定をしてみます。
Scala入門記の目次はこちらです。
Build.scalaの設定
import sbt._ import sbt.Keys._ object ScalaSample002Build extends Build { lazy val projectSettings = Defaults.defaultSettings ++ Seq( organization := "com.xhachi.samples", version := "1.0", scalaVersion := "2.10.3", libraryDependencies ++= Seq( "org.scalatest" %% "scalatest" % "2.0" % "test" ) ) lazy val root = Project( id = "scala-sample-002", base = file("."), settings = projectSettings ++ Seq( name := "scala-sample-002" ) ).dependsOn(project2) lazy val project1 = Project( id = "scala-sample-002-1", base = file("project1"), settings = projectSettings ++ Seq( name := "scala-sample-002-1" ) ) lazy val project2 = Project( id = "scala-sample-002-2", base = file("project2"), settings = projectSettings ++ Seq( name := "scala-sample-002-2" ) ).dependsOn(project1) }
今回は前回のrootのプロジェクトにあった
.aggregate(project1, project2)
の設定を省いていみたところEclipseのプロジェクトが3つ作成されインポートできるようになりました。
この辺りの動きは今後確認して行きたいと思います。
インポートしたらこんな感じです。
いいこと
Build.scalaをこう書き換えることで、他の3つのbuild.sbtは不要になります。
また、
- organization := "com.xhachi.samples"
- version := "1.0"
- scalaVersion := "2.10.3"
のような共通の設定をまとめたりもできるので管理しやりやすくなります。
また、Scalaのコードなのでコンパイルエラーなどで構文チェックもできます。
ソースコード
今回のソースは009のタグを打ってあるこちらです。
thachi/scala-sample-002 at 009 · GitHub
修正した差分はこちら。
プロジェクトの設定をBuild.scalaにまとめ、build.sbtを削除しました。 · 4971d6e · thachi/scala-sample-002 · GitHub