覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

Scala - IntelliJ IDEA上でsbtを用いて実行可能jarの生成

前回のエントリでIntelliJ IDEAsbtを利用したScalaの開発を行う環境を整えました。

その際には、sbtのpackageを実行してjarの生成を行いました。
ただし、生成されるjarはFat Jarではありません(依存する各種jarは含んでいない)。

本エントリでは、sbt-assemblyを用いてFat Jar(uber-jar)を生成する手順メモを記載しておきます。


今回のサンプルではbuil.sbtの内容は(初期状態では)以下のようになっているものとします

name := "SbtTrial"

version := "1.0.0"

scalaVersion := "2.12.1"

libraryDependencies ++= Seq(
  "org.apache.commons" % "commons-lang3" % "3.1",
  "commons-io" % "commons-io" % "2.4"
)


sbt-assemblyを利用すための設定の記述

sbt-assemblyを利用するには、plugins.sbtに以下の内容を追記します。

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

f:id:nini_y:20161230214307p:plain


jarの生成

IntelliJ IDEA上でSBT Consoleを起動した状態にします。
起動したコンソール上で、assemblyと入力して実行します。 こうすると依存するライブリも含んだ形となっているjar(Fat Jar)がtargetディレクトリ内に生成されます。
ちなみに、jarの名前はSbtTrial-assembly-1.0.0.jarとなっています。

f:id:nini_y:20161230214349p:plain


jarの名前を指定したい場合

Fat Jarとして生成するjarの名前を自分で指定したい場合もあると思います。
その場合は、build.sbtで「assemblyJarName」を定義してそこにjarの名前を記述します。

ここでは、プロジェクト名とバージョンを付与したjar名にするようにしました。

assemblyJarName := s"${name.value}-${version.value}.jar"


この状態で、assemblyを実行してビルドすると、SbtTrial-1.0.0.jarという名前のjarが生成されます



関連エントリ