簡體   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