1

我的项目使用 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中尝试了几种映射组合,但没有成功。

谢谢

4

2 回答 2

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。

于 2015-01-22T18:10:44.407 回答
0

您应该能够 按照描述的 filter-remove-mappings 示例重新映射现有的。我应该看起来像这样mappings in Universal

mappings in Universal := {
    val universalMappings = (mappings in Universal).value
    val appName = name.value
    universalMappings map {
        case (file, path) =>  (file, s"$appName/$path")
    }
}
于 2015-01-23T22:10:59.740 回答