我的项目使用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 中尝试了多个映射组合,但没有成功。
由于
答案 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")
}
}