如何使用 sbt-native-packager 创建 Upstart Zip 包?

How can I create an Upstart Zip package using sbt-native-packager?

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

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

然后是运行

sbt clean universal:packageBin

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

upstart 所需的配置文件等在哪里? 我是漏掉了秘诀还是使用了错误的咒语?

阅读 this page 上的所有文档,我的印象是原型插件决定了我的包中包含什么,而格式插件决定了包采用什么形式。

因此,例如,我可以有一个 Java 服务器项目,该项目旨在使用 JavaServerAppPackaging(原型)并添加 [=17] 作为守护进程用户启动 运行ning =] 设置,然后使用通用(格式)插件将其打包为 Zip 或 Tar.gz 或使用 Debian(格式)插件将其打包为 .deb 文件。

好吧,我想要一个 Java 服务,其中包含使用 upstart 系统加载程序启动所需的所有文件,但打包为 Zip 文件。所以我假设我需要 upstart (archetype system loader) plugin with the universal(格式)插件。

upstart 插件的系统加载器文档中甚至有一个提示

You can use systemloaders with the Java Application Archetype or the Java Server Application Archetype!

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

有人能告诉我如何获得一个带有启动 Java 服务器应用程序的 upstart 布局的 zip 包吗?如果您能指出我明显遗漏的文档,那也将有助于我的理解:-)

干杯

卡尔

感谢您如此仔细地准备文档,很抱歉文档没有解释哪些包类型支持系统加载程序。

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

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

干杯, 向