在我们的团队中,我们构建包含我们的应用程序的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,但这是另一个问题。
答案 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
我相信您已经完成了包装工作。