使用 sbt 原生打包将 fat jar 打包成 debian

Posted

技术标签:

【中文标题】使用 sbt 原生打包将 fat jar 打包成 debian【英文标题】:Package fat jar into a debian using sbt native packaging 【发布时间】:2018-10-25 05:07:38 【问题描述】:

在运行“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 中,添加了以下内容: 懒惰的 val root =(文件中的项目(“。”))。 enablePlugins(DebianPlugin)

【问题讨论】:

感谢您的提问。您能否添加更多信息:sbt、程序集和本机打包程序版本,build.sbt 编辑了问题,更新了 sbt、native-packager 和 build.sbt sn-p 的版本。 【参考方案1】:

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

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

查看installation section in the reader,其中指出:

enablePlugins(JavaAppPackacking)

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

sbt 汇编

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

干杯, 渚

【讨论】:

以上是关于使用 sbt 原生打包将 fat jar 打包成 debian的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SBT 原生打包器部署 Scala Play 框架 API

使用 SBT 将编译后的 Scala 文件打包到 jar 中

SBT 原生打包程序:在 %install 中解压缩工件

2017.5.1 使用fat jar插件来打包有引用外部jar包的项目

fat jar怎么用

sbt 原生打包器 dockerCommands 复制