scala cliから実行できるコードからjarファイルを作成できることをオンラインで読みました。すべての記述は次のコードです。それからjarファイルを作成する方法を教えてください。 ?sbt 0.13.7を使用しています。
object Main extends App {
println("Hello World from Scala!")
}
Scalaで複雑なビルドタスクを実行するには、SBTをビルドツールとして使用する必要があります。これは、アプリケーションパッケージを作成するデフォルトのscala方法です。プロジェクトにSBTサポートを追加するには、ルートフォルダーにbuild.sbt
ファイルを作成するだけです。
name := "hello-world"
version := "1.0"
scalaVersion := "2.11.6"
mainClass := Some("com.example.Hello")
外部依存関係がない場合にアプリケーションでjarファイルをビルドするには、sbt package
を実行します。コードでhello-world_2.11_1.0.jar
ファイルをビルドし、Java -jar hello-world.jar
で実行できるようにします。 。ただし、少なくともScalaランタイムのため、コードにいくつかの依存関係を含める必要があります。
sbt-Assembly プラグインを使用して、すべての依存関係を持つファットjarをビルドします。それをインストールするには、行を追加します
addSbtPlugin("com.eed3si9n" % "sbt-Assembly" % "0.12.0")
project/plugins.sbt
ファイルに追加し(そのようなファイルがない場合は作成します)、コンソールからsbt Assembly
タスクを実行します。
sbt
に加えて、この単純なコマンドラインも検討してください。
_scalac hello.scala -d hello.jar
_
これにより、jarファイルが作成されます。で実行する
_scala hello.jar
_
また、このヘッダーを追加してソースコードをスクリプト化することもできます
_#!/bin/sh
exec scala -savecompiled "$0" "$@"
!#
_
Main.main(args)
を使用してmainメソッドを呼び出します(ファイルを実行可能にするために_chmod +x hello.sh
_に注意してください)。ここで、savecompiled
は最初の呼び出しでjarファイルを作成します。
このSBTプラグインを試すことができます: https://github.com/sbt/sbt-native-packager
このプラグインを使用してLinux Debianパッケージを作成しました(Windows MSIも使用できるはずです)。
sbt: publishLocal
その後、おそらくscala-2.**
と呼ばれるターゲットフォルダに移動します