我正在尝试使用SBT构建RPM,已有一个Build.scala文件驻留在项目文件夹中:
项目/ Build.scala
import sbt._
import Keys._
import play.Project._
object ApplicationBuild extends Build { ... }
然后我在project /
中有一个Packaging.scala文件项目/ Packaging.scala
import sbt._
import com.typesafe.sbt.packager.Keys._
import sbt.Keys._
import com.typesafe.sbt.SbtNativePackager._
object Packaging {
val settings: Seq[Setting[_]] = packagerSettings ++ deploymentSettings ++ mapGenericFilesToLinux ++ Seq(.... )
}
其中定义了name,packageSummary,version,maintainer,packageDescription,Rpm中的名称,Rpm中的版本,rpmRelease等。
然后我在plugins.sbt
project / plugins.sbt
// Plugin for sbt native package manager
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "0.6.4")
然后在项目区域外的主build.sbt中:
build.sbt
Packaging.settings
问题是规范文件永远无法填充驻留在项目目录中的packaging.scala文件中的任何字段。它只填充Build.scala中的信息,因此缺少像摘要这样的元素,而且版本来自Build.scala,而不是来自Packaging.scala。我不知道如何让packaging.scala文件负责打包并填充生成spec文件所需的信息。
我运行的命令是
sbt rpm:package-bin