sbt-native-package Debian与JDKPackager

时间:2015-07-27 14:25:34

标签: scala sbt-native-packager

我试图了解这两种安装程序之间的差异。理想情况下,我希望能够捆绑Java但是(因为它应该在Debian上)包依赖。这适用于Screenshot on Retina (not correct)

enablePlugins(DebianPlugin)

debianPackageDependencies in Debian += "java6-runtime"

理想情况下,我想为我的桌面管理员(例如Gnome)提供.desktop条目,处理图标,启动和jvm选项以及文件关联。这由Debian plugin自动处理:

enablePlugins(JDKPackagerPlugin)

jdkAppIcon := ...

jdkPackagerJVMArgs := Seq("-Xmx1g")

jdkPackagerAssociations += FileAssociation(
  "foobar", "application/foobar", "Foobar file type", myIcon)

我如何实现一个结合了这两个功能,包依赖关系和桌面应用程序集成的安装?

1 个答案:

答案 0 :(得分:1)

JDKPackager与其他插件存在一种并行的世界,因为它试图将标准sbt-native-packager密钥(以及一些额外的密钥)转换为Oracle Java 8 {{1}的形式}工具接受,将所有“硬”工作委托给外部工具。它通过JDK随附的一组Ant任务完成此任务,通过javapackager目录中创建的build.xml文件调用。

target/jdkpackager方面,它们是从头开始构建的,可能是考虑到服务器类型的应用程序。

虽然Oracle继续向LinuxPlugin系统添加新功能,但它的文档通常不完整且不完整(截至撰写本文时),因此可能存在可能但不通过{{1密钥。如果您在Oracle Ant任务中找到可帮助您实现最终目标的内容,请不要犹豫,向项目提交问题或PR。对Ant任务参数公开其他设置通常是一个简单的过程。

您可能还会发现,通过javapackger "drop-in resources"工具,您可以覆盖生成的sbt-native-packager定义文件的某些部分。也就是说,我只在MacOS和Windows上使用它(它工作正常,但有点繁琐),并且不知道通过javapackager.deb管道确切暴露了什么。