【问题标题】:Change name in Debian package of sbt-native-packager在 sbt-native-packager 的 Debian 软件包中更改名称
【发布时间】:2016-02-15 05:05:58
【问题描述】:

我想将 sbt-native-packager 附加到项目的根聚合,但该根项目已发布 Maven 的名称 "foobar"。我希望通过debian:packageBin 生成的工件始终使用"foo"

我该如何做到这一点?

我试过了

name           in Debian := "foo"
packageName    in Debian := "foo"
normalizedName in Debian := "foo"
executableScriptName := "foo"
artifact       in Debian := (artifact in Debian).value.copy(name = "foo")

等等。没有一个有效果。我最终得到了etc/foobarusr/share/foobar


编辑:在这些设置之后,我越来越接近:

name                      in Debian := "foo"
normalizedName            in Debian := "foo"
packageName               in Debian := "foo"
name                      in Linux  := "foo"
normalizedName            in Linux  := "foo"
packageName               in Linux  := "foo"

现在的问题是生成的 .deb 文件包含每个目录两次,例如etc/foobar vs etc/foousr/share/foobar vs usr/share/foo。所以在某个地方仍然必须引用旧的包名......这很奇怪,因为我仔细检查了 linuxPackageMappings in Debian 只包含正确的文件。

【问题讨论】:

    标签: scala sbt sbt-native-packager


    【解决方案1】:

    如编辑中所示,您必须同时覆盖范围 DebianLinux 的设置。我的错误是即使删除了.deb 文件,target 仍然会被旧文件污染。所以如果你改变这些东西,你必须在重新打包之前运行rm -r target。然后设置是:

    executableScriptName     := "foo"
    name           in Debian := "Foo"
    packageName    in Debian := "foo"
    name           in Linux  := "Foo"
    packageName    in Linux  := "foo"
    packageSummary in Debian := "Description of Foo"
    

    【讨论】:

    • 快速说明:不同的 Foo/foo 大写是故意的吗?
    • 是的,我将我的应用程序名称保留为驼峰式,而包(也默认情况下)基于小写版本的normalizedName。为了安全起见,也可以在这里覆盖normalizedName := "foo"
    猜你喜欢
    • 2016-02-15
    • 2016-05-27
    • 2016-09-15
    • 2014-09-13
    • 2016-07-27
    • 2022-06-22
    • 2016-05-28
    • 2017-10-03
    • 2021-04-13
    相关资源
    最近更新 更多