使用SBT将RPM发布到远程YUM存储库

时间:2015-12-01 11:52:29

标签: scala sbt rpm yum

在我们的团队中,我们构建包含我们的应用程序的RPM文件,然后我们有一个bash / cURL脚本将其发布到远程YUM存储库。本质上,它是一个带有表单数据的HTTP POST:

curl ${curl_opts} -F "rpm=@$RPM;type=application/x-redhat-package-manager"

现在我想用SBT替换这个脚本,因为从部署角度来看它是不方便的。我试图找到一些可以为我处理这个问题的SBT插件,但无济于事。有这样的事吗?

P.S。我想,另一种方法是直接从SBT执行这样的HTTP POST,但这是另一个问题。

1 个答案:

答案 0 :(得分:0)

您可以使用SBT Native Packager (RPM)生成RPM,并配置sbt-package-courier部署到您的存储库。

在您的plugins.sbt文件中添加:

addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.4")
addSbtPlugin("io.sysa" % "sbt-package-courier" % "0.2.0")

然后发布:

enablePlugins(RpmArtifactoryDeployPlugin)
rpmArtifactoryUrl in Rpm := "https://repo.acme.corp/artifactory"
rpmArtifactoryCredentials in Rpm := Some(Credentials(Path.userHome / ".ivy2"/ ".credentials"))
rpmArtifactoryRepo in Rpm := "rpm-repo"
rpmArtifactoryPath in Rpm := s"pool/${packageName.value}"
publish in Rpm := (rpmArtifactoryPublish in Rpm).value

最后

sbt rpm:publish

我相信您已经完成了包装工作。

相关问题