如何使用 sbt-native-packager 创建 Upstart Zip 包?
Posted
技术标签:
【中文标题】如何使用 sbt-native-packager 创建 Upstart Zip 包?【英文标题】:How can I create an Upstart Zip package using sbt-native-packager? 【发布时间】: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 包?如果你能指出我明显错过的文档,那也会有助于我的理解:-)
干杯
卡尔
【问题讨论】:
【参考方案1】:感谢您如此仔细地准备文档,很抱歉文档缺少说明哪些包类型支持系统加载器。
简短的回答是:只有 rpm
和 debian
软件包支持系统加载程序(systemd、systemV 和 upstart)。
为什么会这样?系统加载程序与目标操作系统紧密相关。这不是通用,这就是它不在其中的原因。配置文件和/或脚本和平台相关,这不是您常规应用程序目录的一部分。
干杯, 渚
【讨论】:
谢谢 Muki,我确实在文档中记错了……我猜大脑会看到它想看到的东西。 然而,Upstart 确实定义了它希望找到某些文件的位置 (manpages.ubuntu.com/manpages/trusty/man5/init.5.html#files),因此可以准备一个可以压缩或 tar.gz 的阶段目录。原型和格式插件之间的分离仍然可以保持吗?我错了吗?但是拥有灵活性会很好,如果我尝试在不知道如何处理它的操作系统中运行新贵 zip,那将是我的错,就像尝试在操作系统中运行 .deb 一样不支持 apt 。但再次感谢您回答我的问题并向我展示了我误读的内容。 ps 它在哪里“清楚地说明了哪些包类型支持系统加载程序”?我又看了一遍又错过了? 我真的写了一个糟糕的答案。在移动设备上自动更正? 我的意思是我很抱歉目前没有描述这个的部分。非常误导我写的东西?以上是关于如何使用 sbt-native-packager 创建 Upstart Zip 包?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 sbt-native-packager 设置 docker 镜像名称
如何使用 sbt-native-packager 创建基本项目设置
如何使用 sbt-native-packager 更改通用 zip 文件名
如何使用 sbt-native-packager 创建 Upstart Zip 包?