首页 > 解决方案 > 如何使用 sbt-native-packager 创建 Upstart Zip 包?

问题描述

我无法生成新贵 zip 包。我已将以下内容添加到我的 sbt 项目中

...
enablePlugins(UpstartPlugin).
enablePlugins(JavaServerAppPackaging)

然后运行

sbt clean universal:packageBin

并生成了一个 Zip 文件,但其中包含 shell 脚本,./bin其中的 jar./lib看起来就像我使用时生成的一样JavaAppPackaging

需要的conf文件等在哪里upstart?我是否错过了秘方或使用了错误的咒语?

阅读此页面上的所有文档,我的印象是原型插件决定了我的包中的内容,而格式插件决定了包的形式。

因此,例如,我可以有一个 Java Server 项目,该项目旨在使用JavaServerAppPackaging(archetype) 作为守护程序用户启动并添加daemonUser设置,然后使用 Universal (format) 插件将其捆绑为 Zip 或 Tar.gz或使用 Debian(格式)插件的 .deb 文件。

好吧,我想要一个 Java 服务,其中包含使用upstartSystem Loader 启动但打包为 Zip 文件所需的所有文件。所以我假设我需要带有通用(格式)插件的新贵(原型系统加载器)插件。

甚至在系统加载器文档上也有关于暴发户插件的提示说

您可以将系统加载器与 Java 应用程序原型或 Java 服务器应用程序原型一起使用!

嗯,这正是我想要的,但它并没有说明如何去做!

请有人能告诉我如何获得一个带有启动 Java Server 应用程序的新贵布局的 zip 包吗?如果您能指出我明显错过的文档,那也将有助于我的理解:-)

干杯

卡尔

标签: scalasbtupstartsbt-native-packager

解决方案


感谢您如此仔细地准备文档,很抱歉文档缺少说明哪些包类型支持系统加载程序。

简短的回答是:只有rpmdebian包支持系统加载器(systemd、systemV 和 upstart)。

为什么呢?系统加载程序与目标操作系统紧密相关。它不是通用的,这就是它不在其中的原因。配置文件和/或脚本和平台相关,这不是您常规应用程序目录的一部分。

干杯,穆基


推荐阅读