Scala 应用打包分发

使用 Sbt 创建完项目, 编写完代码之后,需要将 Scala 应用打包部署或者发给用户,但是默认 sbt compile 编译出来的包依赖系统安装的 scala 运行时, 无法分发和部署。

这里用到的是官方的插件: https://github.com/sbt/sbt-native-packager

他可以将应用打包成各个系统平台兼容的应用,便于分发。 首先添加插件,文件:project/plugins.sbt (没有则手动创建):

addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.6.1")

build.sbt 文件加入:

enablePlugins(JavaAppPackaging)

如果是网络 Server 应用,则添加:

enablePlugins(JavaServerAppPackaging)

最后可以使用以下命令打包成各个平台应用:

# universal zip
sbt universal:packageBin

# debian package
sbt debian:packageBin

# rpm package
sbt rpm:packageBin

# docker image
sbt docker:publishLocal

# graalvm image
sbt graalvm-native-image:packageBin

universal 平台打包出来的是一个压缩包,需要先解压,然后到 bin 目录执行对用文件。