sbt-native-packager 和 RPM - 如何设置所需的参数?

sbt-native-packager and RPM - how do I set required parameters?

我发现使用 sbt 原生打包器构建 Play 项目很困难。当出现以下错误时,我不知道在哪里设置 RPM 配置:

[error] `rpmVendor in Rpm` is empty.  Please provide a valid vendor for the rpm SPEC.
[error] `packageSummary in Rpm` is empty.  Please provide a valid summary for the rpm SPEC.
[error] `packageDescription in Rpm` is empty.  Please provide a valid description for the rpm SPEC.

我在 project/plugins.sbt 中设置了以下内容:

addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "0.8.0")

在我的 build.sbt:

name := """supersecretproject"""

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayScala)

scalaVersion := "2.11.1"

libraryDependencies ++= Seq(
  jdbc,
  anorm,
  cache,
  ws  
)

libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.27"

javacOptions ++= Seq("-source", "1.6", "-target", "1.6")

tomcat()

documentation 仅说明:

A rpm package needs some mandatory settings to be valid. Make sure you have these settings in your build:

rpmRelease := "1"

rpmVendor := "typesafe"

rpmUrl := Some("http://github.com/paulp/sbt-extras")

rpmLicense := Some("BSD")

如果您不太了解 SBT,这几乎完全没有用!如何按照文档说明 "have these settings in your build:"?

我尝试将上面的 "settings" 添加到 build.sbt 或单独的 packageSettings.sbt 但没有成功,因为我只收到以下错误:

error: not found: value rpmRelease
rpmRelease := "1"
^
[error] Type error in expression

注意:我运行 sbt 使用sbt rpm:packageBin

听起来该插件的开发人员试图不要过于规范,但这样做并没有为您提供足够的信息以帮助您入门! :-(

最简单的解决方案:将这四个设置(包括之间的空白行)复制到您的 build.sbt.

合乎逻辑的位置可能在文件底部,因为“打包”您的应用程序是在开发周期“快结束”时发生的事情。

另一个选项: SBT automatically combines 它在项目根目录中找到的所有 .sbt 文件的内容。因此,如果您愿意,可以创建一个新文件,例如 packagingSettings.sbt 并将这些设置放在那里。

编辑:帮助导入:

无论选择哪个选项,都需要在文件顶部添加以下导入(根据 getting started guide):

import com.typesafe.sbt.SbtNativePackager._
import NativePackagerKeys._