【问题标题】:How can I create an Upstart Zip package using sbt-native-packager?如何使用 sbt-native-packager 创建 Upstart Zip 包?
【发布时间】:2019-02-27 00:29:36
【问题描述】:

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

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

然后运行

sbt clean universal:packageBin

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

upstart 所需的 conf 文件等在哪里? 是我遗漏了秘方还是使用了错误的咒语?

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

例如,我可以有一个 Java 服务器项目,该项目旨在使用 JavaServerAppPackaging(原型)并添加 daemonUser 设置以守护程序用户身份运行,然后将其捆绑为 Zip 或 Tar .gz 使用 Universal(格式)插件或 .deb 文件使用 Debian(格式)插件。

嗯,我想要一个 Java 服务,其中包含使用upstart System Loader 启动但打包为 Zip 文件所需的所有文件。所以我假设我需要upstart(原型系统加载器)插件和universal(格式)插件。

在系统加载器文档中甚至有一条关于新贵插件的提示

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

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

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

干杯

卡尔

【问题讨论】:

    标签: scala sbt upstart sbt-native-packager


    【解决方案1】:

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

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

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

    干杯, 渚

    【讨论】:

    • 谢谢 Muki,我确实在文档中记错了……我猜大脑会看到它想看到的东西。
    • 然而,Upstart 确实定义了它希望找到某些文件的位置 (manpages.ubuntu.com/manpages/trusty/man5/init.5.html#files),因此可以准备一个可以压缩或 tar.gz 的阶段目录。原型和格式插件之间的分离仍然可以保持吗?我错了吗?但是拥有灵活性会很好,如果我尝试在不知道如何处理它的操作系统中运行新贵 zip,那将是我的错,就像尝试在操作系统中运行 .deb 一样不支持 apt 。但再次感谢您回答我的问题并向我展示了我误读的内容。
    • ps 它在哪里“清楚地说明了哪些包类型支持系统加载程序”?我又看了一遍又错过了?
    • 我真的写了一个糟糕的答案。在移动设备上自动更正?
    • 我的意思是我很抱歉目前没有描述这个的部分。非常误导我写的东西?
    猜你喜欢
    • 2014-02-28
    • 2015-07-16
    • 2016-12-14
    • 2015-09-01
    • 2015-01-07
    • 2016-05-19
    • 2014-09-13
    • 2018-09-29
    • 2013-09-15
    相关资源
    最近更新 更多