web-dev-qa-db-ja.com

scalaからjarファイルを作成する方法

scala cliから実行できるコードからjarファイルを作成できることをオンラインで読みました。すべての記述は次のコードです。それからjarファイルを作成する方法を教えてください。 ?sbt 0.13.7を使用しています。

object Main extends App {
    println("Hello World from Scala!")
}
17
eddard.stark

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タスクを実行します。

15
shutty

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ファイルを作成します。

17
elm

このSBTプラグインを試すことができます: https://github.com/sbt/sbt-native-packager

このプラグインを使用してLinux Debianパッケージを作成しました(Windows MSIも使用できるはずです)。

3
leshkin

sbt: publishLocalその後、おそらくscala-2.**と呼ばれるターゲットフォルダに移動します

2
Mikhail Kobenko