如何从scala制作一个jar文件

时间:2015-06-01 14:32:19

标签: scala jar sbt

我在线阅读过可以从sci代码创建一个可以从cli运行的jar文件。所有写的都是以下代码。如何从中制作jar文件?我正在使用sbt 0.13.7。

object Main extends App {
    println("Hello World from Scala!")
}

4 个答案:

答案 0 :(得分:15)

为了能够使用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文件,以便您可以使用{{{}运行它1}}。但是你肯定必须在代码中加入一些依赖项,至少是因为Scala运行时。

使用sbt-assembly插件构建包含所有依赖项的胖jar。要安装它,请添加一行

java -jar hello-world.jar

到您的addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.12.0") 文件(如果没有这样的文件则创建它)并从控制台运行project/plugins.sbt任务。

答案 1 :(得分:15)

除了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文件。

答案 2 :(得分:3)

您可以尝试使用此SBT插件:https://github.com/sbt/sbt-native-packager

我用这个插件创建了Linux Debian软件包(Windows MSI也应该可以)。

答案 3 :(得分:2)

sbt: publishLocal 然后转到目标文件夹,可能名为scala-2.**