当前位置: 首页 > 知识库问答 >
问题:

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

浦毅
2023-03-14
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): _*)
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))
  )
 ...
Source: project-name
Package: project-name
Priority: optional
Architecture: all
...

我是不是漏掉了什么?我查看了sbt-native-packager文档,并在谷歌上搜索了一些答案,但没有成功:(

共有1个答案

佟阳云
2023-03-14

Debian中的name>似乎只影响.deb文件名,而不影响控制文件中的包名。为此,您应该使用packageName。这个插件在名称、空格和继承方面相当混乱。

经过一些测试,我发现以下几点应该可以使其工作:

name        in Linux := baseName,
packageName in Linux := baseName,

如果您使用indebian,您将得到一个混合产品,其中一半的名称来自主作用域名称,另一半来自debian作用域名称。

 类似资料:
  • 目标目录中生成的debian包没有绑定cron。 我参考了这份debian文档(http://www.debian.org/doc/manuals/maint-guide/dother.en.html#crond) 我是不是漏了什么?如何使sbt-native-package拾取成为cron作业?

  • 我有一个sbt构建,当我从命令行运行时可以工作,但Intellij不喜欢。我的Intellij运行在Linux上,它的版本是14.1.4,我的scala插件是1.5.2。 Intellij抱怨我使用enablePlugins(JavaAppPackaging)。错误是“表达式类型(DslEntry)必须符合SBT文件中的设置[_]”。 我的项目/构建。属性文件: 我的项目/插件。sbt公司 我bu

  • 我刚刚将react原生版从0.30升级到0.48.1,我面临一个奇怪的问题。我修复了我正在使用的库的所有对等依赖关系。然后执行命令, 反应本机启动 运行上述命令将启动packager。现在,当我点击下面的url生成jsbundle时,http://localhost:8081/index.android.bundle?platform=android 我在犯错误, $PROJ_ROOT_DIR是我

  • 正如您所看到的,我已经注释掉了Docker中的映射。这样做的原因是,如果我将它留在中,它将在target/docker/stage中创建一个与我的war文件同名的空目录(在本例中为direct2-batch-match2.11-0.1.0-snapshot.war)。这允许Dockerfile在docker构建中正常工作,但是war文件的内容不包括在构建中。 我在Mac OS X上运行,我想知道这

  • 问题内容: 是否可以让您的用户下载其他名称的文件? 例如,有一个名为“ 4324ffsd34.jpg”的文件。我希望人们通过download.php以不同的名称(例如“ filetodownload.jpg”)下载它,而不重命名原始文件。 问题答案: 当然,请使用Content-disposition 标头 如果您希望提供默认文件名,而不是自动下载,那么这似乎可行。