sbt-native-package Debian 与 JDKPackager
Posted
技术标签:
【中文标题】sbt-native-package Debian 与 JDKPackager【英文标题】:sbt-native-package Debian versus JDKPackager 【发布时间】:2015-10-17 19:09:27 【问题描述】:我试图了解这两种安装程序之间的区别。理想情况下,我希望能够 not 捆绑 Java,但具有(应该在 Debian 上)包依赖项。这适用于Debian plugin:
enablePlugins(DebianPlugin)
debianPackageDependencies in Debian += "java6-runtime"
理想情况下,我希望有一个.desktop
条目用于我的桌面管理器(例如 Gnome)、处理图标、启动和 jvm 选项以及文件关联。这是由JDKPackager plugin 自动处理的:
enablePlugins(JDKPackagerPlugin)
jdkAppIcon := ...
jdkPackagerJVMArgs := Seq("-Xmx1g")
jdkPackagerAssociations += FileAssociation(
"foobar", "application/foobar", "Foobar file type", myIcon)
如何实现结合这两个功能、包依赖项和桌面应用程序集成的安装?
【问题讨论】:
我认为 jdkpackager 是要走的路。它配置了一个 ant build.xml 。检查它是否提供排除 jre 的方法。您也可以在我们的 github 页面上创建功能请求。 【参考方案1】:JDKPackager
存在于与其他插件类似的世界中,因为它尝试将标准的 sbt-native-packager
键(和一些附加键)转换为 Oracle Java 8 javapackager
工具接受的形式,委托所有外部工具的“艰苦”工作。它通过一组随 JDK 一起交付的 Ant 任务来执行此操作,这些任务通过在 target/jdkpackager
目录中创建的 build.xml
文件调用。
在 LinuxPlugin
方面,它们更多地是从头开始构建的,可能考虑到了服务器类型的应用程序。
虽然 Oracle 继续向 javapackger
系统添加新功能,但它的文档通常参差不齐且不完整(在撰写本文时),因此可能存在可能但未通过 sbt-native-packager
键公开的功能。如果您在 Oracle Ant 任务中发现可以帮助您实现最终目标的内容,请不要犹豫,向项目提交问题或 PR。针对 Ant 任务参数公开其他设置通常是一个简单的过程。
您还可能会发现,通过javapackager
"drop-in resources" 工具,您可以覆盖生成的.deb
定义文件的某些部分。也就是说,我只在 MacOS 和 Windows 上使用过它(它可以工作,但有点繁琐),并且不知道通过 .deb
和 .rpm
管道公开了什么。
【讨论】:
以上是关于sbt-native-package Debian 与 JDKPackager的主要内容,如果未能解决你的问题,请参考以下文章
sbt-native-package Debian 与 JDKPackager
在 sbt-native-packager for debian:package-bin 的类路径中添加 /etc/<application>
构建 deb 包时无法使用 sbt-native-packager 打包 cron 作业
Sbt-Native-Packager 控制文件与 .deb 创建的名称不一致