我试图了解这两种安装程序之间的差异。理想情况下,我希望能够不捆绑Java但是(因为它应该在Debian上)包依赖。这适用于:
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)
我如何实现一个结合了这两个功能,包依赖关系和桌面应用程序集成的安装?
答案 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
管道确切暴露了什么。