以前、Mavenを使って同じような事をしたんですが、その時うまくいかなかったSBTを使った方法ができたので、一応記録として残します。
できなかった理由はバージョンの問題っぽいので、今回のバージョンの組み合わせ以外ではできない可能性があります。
あしからず。
用意するファイル
下記のような構成でファイルを用意します。
scalaのコードをカレントディレクトリに置いてますが、src/main/scala/の中でも多分大丈夫です。
.├── build.sbt├── main.scala└── project ├── build.properties └── plugin.sbt
1 directory, 4 files
build.sbt
name := "sbtAssembly"
version := "1.0"
scalaVersion := "2.9.1"
seq(assemblySettings: _*)
scalaのバージョンは2.9.1です。
main.scala
object Main { def main(args: Array[String]): Unit = { println("Hello world") }}
なんの変哲もない Hello world です。
build.properties
sbt.version=0.11.2
sbtのバージョンだけ書いてます。
plugin.sbt
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.7.2")
resolvers += Resolver.url("sbt-plugin-releases", new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/"))(Resolver.ivyStylePatterns)
このsbt-assemblyのバージョンが0.7.2じゃないと動かなかったです。0.7.3だと動かない?
Jarを作ろう
あとはカレントディレクトリで sbt コマンドを実行し、sbtのインタープリターに入り、assembly
と打つだけです。
targetディレクトリにsbtAssembly-assembly-1.0.jarができていることが確認できるはずです。
mavenにくらべると記述量が圧倒的にすくなくていいですね。
やっぱSBTいいなー。
Scalaスケーラブルプログラミング第2版 Martin Odersky Lex Spoon Bill Venners 羽生田 栄一 インプレスジャパン 2011-09-27 売り上げランキング : 103838 Amazonで詳しく見る |