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

时间:2015-02-26 17:35:26

标签: scala sbt

我发现使用sbt native packager构建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仅表示:

  

rpm包需要一些强制设置才有效。确保您在构建中具有以下设置:

rpmRelease := "1"

rpmVendor := "typesafe"

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

rpmLicense := Some("BSD")

如果你不熟悉SBT,那几乎完全没用!我如何在您的构建中拥有这些设置:"文件指示?

我尝试添加上述"设置" to build.sbt或单独的packageSettings.sbt但没有运气,因为我得到以下错误:

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

注意:我使用sbt rpm:packageBin

运行sbt

1 个答案:

答案 0 :(得分:1)

听起来这个插件的开发人员试图不要过于规范,但这样做并没有给你足够的信息甚至开始! : - (

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

逻辑位置可能位于文件的底部,因为"包装"你的应用程序是发生的事情"到最后"发展周期。

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

编辑:帮助导入:

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

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