使用sbt-native-packager,如何在tar.gz文件中添加基目录?

时间:2015-01-21 18:10:58

标签: playframework sbt sbt-native-packager

我的项目使用Play Framework 2.3.7(使用sbt 0.13.5,sbt-native-packager和Activator 1.2.12),我正在使用

生成tar.gz文件
activator universal:package-bin

生成的tar.gz文件包含目录(conf,bin,share,conf)。

我需要在tar.gz文件中有一个基目录(/ opt / my_application /),结果是:

/opt/my_application/conf
/opt/my_application/bin

我在http://www.scala-sbt.org/sbt-native-packager/formats/universal.html build.sbt 中尝试了多个映射组合,但没有成功。

由于

2 个答案:

答案 0 :(得分:0)

另一种方法是添加一个sbt任务来调用bash脚本:

lazy val generateTarGz = taskKey[Unit]("Generate tar.gz file")

generateTarGz := {
    "build.sh" !    
}

然后你打电话:

activator clean stage generateTarGz

将调用bash脚本并使用target / universal / stage / *生成tar.gz。

答案 1 :(得分:0)

您应该重新映射现有的mappings in Universal 正如filter-remove-mappings examples所述。我应该看 像这样的东西

mappings in Universal := {
    val universalMappings = (mappings in Universal).value
    val appName = name.value
    universalMappings map {
        case (file, path) =>  (file, s"$appName/$path")
    }
}