繁体   English   中英

Sbt-Native-Packager控制文件与创建的.deb名称不一致

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM