Sbt 如何使用自定义布局创建deb

Sbt 如何使用自定义布局创建deb,sbt,sbt-native-packager,Sbt,Sbt Native Packager,我有一个播放服务器应用程序 目前,我有20行bash脚本创建此deb: /srv /foo /conf <unmanaged resources> /staged <jars> 如何获得所需的布局?我是否需要实施一个新的计划 我使用的是SBT 0.13.7和SBT native packager 1.0.0-M1。如果您的布局与已生成的布局接近,您可以使用类似于defaultLinuxInstallLocation和defau

我有一个播放服务器应用程序

目前,我有20行bash脚本创建此deb:

/srv
  /foo
    /conf
      <unmanaged resources>
    /staged
      <jars>
如何获得所需的布局?我是否需要实施一个新的计划


我使用的是SBT 0.13.7和SBT native packager 1.0.0-M1。

如果您的布局与已生成的布局接近,您可以使用类似于
defaultLinuxInstallLocation
defaultLinuxConfigLocation
的设置

或者直接修改
linuxPackageSymlinks
linuxpackageappings
,例如

    linuxPackageSymlinks := Seq(),
    linuxPackageMappings := {
      val libPath = "/srv/foo/staged"
      val libs = scriptClasspathOrdering.value.map { case (file, classpath) =>
        file -> classpath.replaceFirst("^lib", Matcher.quoteReplacement(libPath))
      }
      Seq(LinuxPackageMapping(libs))
      // plus configuration
    },

如果您有很多二进制文件要归档(即,您有很多依赖项),
debian:packageBin
相当慢。为了调试,请考虑使用<代码> DeBiNeaveDebug包< /C> > /P> 另外,要知道目录
debianExplodedPackage
中的任何内容都将包含在归档文件中,因此如果.deb末尾有额外内容,您可能需要删除该目录

    linuxPackageSymlinks := Seq(),
    linuxPackageMappings := {
      val libPath = "/srv/foo/staged"
      val libs = scriptClasspathOrdering.value.map { case (file, classpath) =>
        file -> classpath.replaceFirst("^lib", Matcher.quoteReplacement(libPath))
      }
      Seq(LinuxPackageMapping(libs))
      // plus configuration
    },