sbtで実行可能なJarを生成する方法(sbt-assembly) | Pimp my Code. @wataru420

Pimp my Code. @wataru420

My name is Wataru Fukunaga.

Who wants a cookie?
以前、Mavenを使って同じような事をしたんですが、その時うまくいかなかったSBTを使った方法ができたので、一応記録として残します。

できなかった理由はバージョンの問題っぽいので、今回のバージョンの組み合わせ以外ではできない可能性があります。
あしからず。

用意するファイル


下記のような構成でファイルを用意します。
scalaのコードをカレントディレクトリに置いてますが、src/main/scala/の中でも多分大丈夫です。

.
├── build.sbt
├── main.scala
└── project
├── build.properties
└── plugin.sbt

1 directory, 4 files
view raw tree This Gist brought to you by GitHub and Gist2Ameblo.

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版Scalaスケーラブルプログラミング第2版
Martin Odersky Lex Spoon Bill Venners 羽生田 栄一

インプレスジャパン 2011-09-27
売り上げランキング : 103838

Amazonで詳しく見る