by shigemk2

当面は技術的なことしか書かない

sbt assembly その2

ただリンクを紹介しただけだったので、死にたくなった。

github.com

project/assembly.sbt に以下のように書く。

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.0")

build.sbtには以下のように書く。なお、sbt assemblyって普通に実行すると、全部盛りでテストまで実行されるので、test in assemblyの中は空にしておく。

// assembly
// テストのスキップ
test in assembly := {}
// メインクラスの明示
mainClass in assembly := Some("com.example.Boot")
// どんなjarを作るか
assemblyJarName in assembly := "my-spray-sample.jar"

// 競合しているものの解消
packageOptions in assembly ~= { pos =>
  pos.filterNot { po =>
    po.isInstanceOf[Package.MainClass]
  }
}

で、以下を実行。sbt runなどより普通に実行が早い。

$ java -jar target/scala-2.11/my-spray-sample.jar