我发现使用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
答案 0 :(得分:1)
听起来这个插件的开发人员试图不要过于规范,但这样做并没有给你足够的信息甚至开始! : - (
最简单的解决方案:将这四个设置(包括空白行)复制到build.sbt
。
逻辑位置可能位于文件的底部,因为"包装"你的应用程序是发生的事情"到最后"发展周期。
另一个选项: SBT automatically combines它在项目根目录中找到的所有.sbt
个文件的内容。因此,如果您愿意,可以创建一个新文件,例如packagingSettings.sbt
,并将这些设置放在那里。
无论您选择哪个选项,都需要在文件顶部添加以下导入(根据getting started guide):
import com.typesafe.sbt.SbtNativePackager._
import NativePackagerKeys._