Edited at

IntelliJ IDEAでScalaの実行可能jarを作る

More than 3 years have passed since last update.


jarにしたいプロジェクトをSBTのプロジェクトとして作成します

スクリーンショット 2016-03-05 19.19.31.png


プロジェクト名は「scala-hallo」としました

スクリーンショット 2016-03-05 19.20.38.png


projectを右クリックして[New]でファイルを作成します

スクリーンショット 2016-03-05 19.21.27.png


ファイルの名前はassembly.sbtです

スクリーンショット 2016-03-05 19.22.51.png


以下の一行を追加して「Refresh project」を押します

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

スクリーンショット 2016-03-05 19.26.25.png

(少し読み込みに時間がかかります)


試しにHello worldを作ってみます

スクリーンショット 2016-03-05 19.28.51.png


ターミナルでscala-helloのディレクトリに移動します

$ cd ~/IdeaProjects/scala-hello/


sbt assemblyをするとjarが作成できます

$ sbt assembly

# 以下のような出力ができます

[info] Loading global plugins from /Users/nwtgck/.sbt/0.13/plugins/project
[info] Loading global plugins from /Users/nwtgck/.sbt/0.13/plugins
[info] Loading project definition from /Users/nwtgck/IdeaProjects/scala-hello/project
[info] Set current project to scala-hello (in build file:/Users/nwtgck/IdeaProjects/scala-hello/)
[info] Compiling 1 Scala source to /Users/nwtgck/IdeaProjects/scala-hello/target/scala-2.11/classes...
[info] Including: scala-library-2.11.7.jar
[info] Checking every *.class/*.jar file's SHA-1.
[info] Merging files...
[warn] Merging '
META-INF/MANIFEST.MF' with strategy 'discard'
[warn] Strategy '
discard' was applied to a file
[info] SHA-1: df781b7e6df5b26f4f6f4993b6e3988c0c844285
[info] Packaging /Users/nwtgck/IdeaProjects/scala-hello/target/scala-2.11/scala-hello-assembly-1.0.jar ...
[info] Done packaging.
[success] Total time: 3 s, completed 2016/03/05 19:31:40


これでjava -jarで実行できますよ

$ java -jar target/scala-2.11/scala-hello-assembly-1.0.jar

スクリーンショット 2016-03-05 19.34.01.png


参考になったところ

(「IntelliJ IDEAでScalaの実行可能jarを作る」といいつつ、sbtで実行可能なjar作ってしまってますね)