[英]Sbt-Native-Packager Control file inconsistent name to .deb created
我对Scala或sbt-native-packager不太熟悉,但是有一个我们创建debian的scala项目。 我注意到的是,创建的.deb名称正确,但是控制文件不正确-是否可以更改此名称?
版本:
Play: 2.2.3 (also tried with 2.2.6)
Sbt-Native-Packager: 0.7.6
在plugins.sbt中
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.6")
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "0.7.6")
这就是我得到的(减去敏感信息):
Build.scala:
val main = play.Project(appName, appVersion, appDependencies)
.settings(scalaVersion := "2.10.4")
.settings(DebPackageSettings.packageSettings(appName, appVersion, baseDirectory): _*)
在DebPackageSettings中:
def packageSettings(appName: String , appVersion: String, baseDirectory: SettingKey[java.io.File]): Seq[sbt.Setting[_]] = {
val baseName = "prefix-project-name"
val appPackageArchitecture = "all"
Seq(
name in Debian := "%s".format(baseName),
version in Debian := "%s".format(appVersion),
packageDescription in Linux := "something",
packageSummary in Linux := "something",
target in Debian <<= (Keys.target) apply ((t) => t / (baseName + "_" + appVersion + "_" + appPackageArchitecture))
)
...
创建的控制文件(在DEBIAN / control中):
Source: project-name
Package: project-name
Priority: optional
Architecture: all
...
创建的.deb: 前缀项目名称_version_all.deb
我想念什么吗? 我已经查看了sbt-native-packager文档,并用谷歌搜索了一些答案,但是没有运气:(
似乎name in Debian
中的name in Debian
仅影响.deb
文件名,而不影响控制文件中的软件包名称。 为此,您应该使用packageName
。 该插件在名称空间和继承方面非常混乱。
经过一些测试,我发现以下应该可以使它工作:
name in Linux := baseName,
packageName in Linux := baseName,
如果in Debian
使用,则会得到某种混合产品,其中一半名称来自主作用域名称,另一半名称来自debian作用域。
我发现这行得通-但是首选/正确的方法是什么?
进口:
import sbt._
import sbt.Keys._
import com.typesafe.sbt.SbtNativePackager._
import NativePackagerKeys._
添加的行:
normalizedName in Debian := "%s".format(baseName),
不确定什么是可取的!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.