如何从 sbt 创建 rpm

How to create an rpm out of sbt

我有一个名为 post_install.sh 的脚本,它存在于 src/main/scripts/post_install.sh 中。我的 sbt 文件是

import com.typesafe.sbt.packager.rpm.RpmPlugin.autoImport.RpmConstants._
maintainerScripts in Rpm := maintainerScriptsAppendFromFile((maintainerScripts in Rpm).value)(
  Post -> (baseDirectory.value / "scripts" / "install" / "post-install.sh")
)

当我 运行 sbt rpm:packageBin 我得到以下错误

[错误] (rpm:maintainerScripts) 此处不存在维护者脚本 post:/Users/spachari/IdeaProjects/aws-customer-email-change-history/scripts/install/post-install.sh

请告诉我如何从 sbt 包创建 rpm。

看看你的错误,你的 baseDirectory 似乎是 /Users/spachari/IdeaProjects/aws-customer-email-change-history 而脚本实际上是 /Users/spachari/IdeaProjects/aws-customer-email-change-history/src/main/scripts/post_install.sh。因此,您可以尝试将代码更改为

import com.typesafe.sbt.packager.rpm.RpmPlugin.autoImport.RpmConstants._
maintainerScripts in Rpm := maintainerScriptsAppendFromFile((maintainerScripts in Rpm).value)(
  Post -> (baseDirectory.value / "src" / "main" / "scripts" / "post-install.sh")
)

假设位于目录中的脚本从中可以正常工作。

可能为时已晚,但以下 sbt 插件可以在不使用依赖于平台的外部工具的情况下创建 rpm。 看看这个 github 项目: https://github.com/en-vee/sbt-rpm/blob/master/README.md