首页 > 解决方案 > 使用 sbt 原生打包将 fat jar 打包成 debian

问题描述

在运行“sbt debian:packageBin”命令时,fakeroot 程序失败,因为它试图在 /target 目录而不是 /target/scala-2.11/ 目录中查找 fat jar(程序集)。

那么,是否有设置使用 sbt Debian 插件指定 debian 打包的源目录?

SBT 版本:0.13.11 在 plugins.sbt 中添加如下: addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.4")

在 build.sbt 中,添加了以下内容:lazy val root = (project in file("."))。enablePlugins(DebianPlugin)

标签: scalasbtsbt-assemblysbt-native-packagersbt-plugin

解决方案


我想你在这里混合了一些东西。SBT native-packager 和 sbt-assembly 解决了相同的问题(创建可以部署的东西),但方式不同。

如何使用 native-packager 解决您的问题

查看阅读器中的安装部分,其中指出:

enablePlugins(JavaAppPackacking)

这会将您的构建配置为创建 JVM 应用程序包。您现在可以运行sbt Debian:packageBin.

sbt 组装

您必须自己创建 debian 软件包。汇编只生成一个胖罐子。

干杯,穆基


推荐阅读