sbtはじめました
ってことで、いきなりメモ。全部ここに書いてるやつのダイジェスト
この内容は0.10.0です
http://eed3si9n.github.com/sbt-getting-started-guide-ja/
インストール方法は
brew install sbt
プロジェクトディレクトリを作って
buid.sbtファイルを作成(ほんとうはhoge.sbtでも良いらしいというか複数個あっても全部有効なのか・・・)
中身は最小限パターンはこの3つで、 単純なプロジェクトだったらここにいろいろ追加していくと
マルチプロジェクトの場合は、project/Build.scalaにいろいろ書いた方がうれしいかも
name := "test" version := "1.0" scalaVersion := "2.9.1"
ディレクトリ構造はこれで作る。
mkdir -p src/main/java mkdir -p src/main/scala mkdir -p src/main/resources mkdir -p src/test/java mkdir -p src/test/scala mkdir -p src/test/resources
どうしてもダウンロードしたjarが必要ならこの辺に放り込むけど、普通はいらないと。
mkdir lib
もしかしたらもっと簡単な方法があるかも・・・ATDK
依存関係の書き方
libraryDependencies += groupID % artifactID % revision % configuration
もしくは
libraryDependencies ++= Seq( groupID % artifactID % revision, groupID % otherID % otherRevision )
groupID % artifactID % revision % configurationの4つはIvyなので、ほぼMavenと同じと。
ってことでメモ。
Ivyでのリビジョンの書き方
http://ant.apache.org/ivy/history/2.2.0/ivyfile/dependency.html#revision
configurationはtestとからしい
- 特定の場所にあるjarに依存したいとき
libraryDependencies += "slinky" % "slinky" % "2.1" from "http://slinky2.googlecode.com/svn/artifacts/2.1/slinky.jar"
- 依存関係から除外
libraryDependencies += "log4j" % "log4j" % "1.2.15" exclude("javax.jms", ??)
- 依存関係から除外その2
libraryDependencies += "log4j" % "log4j" % "1.2.15" excludeAll( ExclusionRule(organization = "com.sun.jdmk"), ExclusionRule(organization = "com.sun.jmx"), ExclusionRule(organization = "javax.jms") )
libraryDependencies += "org.apache.felix" % "org.apache.felix.framework" % "1.8.0" withSources() withJavadocs()
リポジトリの追加方法
resolvers += name at location
これもほぼMavenと同じ。
こうやるとローカルのmavenリポジトリも追加できるのか・・・Mavenも一緒に使う人には便利・・・なのか?
resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository"
ビルド定義のビルド定義
hello/*.sbt のためのビルド定義は hello/project/*.sbt でscalaを置くときは hello/project/project/*.scala
ネストするのがポイントらしい
TODO