抱歉,我是sbt和“sbt-native-packager”的新手。我需要做的是将整个目录映射到.zip文件并更改输出路径。
这是我如何完成目录的映射:
mappings in Universal <++= (packageBin in Compile, baseDirectory ) map { (_, baseDirectory) =>
val dir = baseDirectory / "migrations"
(dir.***) pair relativeTo(dir.getParentFile)
}
映射工作得很好,但我需要在生成的.zip文件中有一个特定的文件夹结构。 在此示例中,此目录映射到“... / target / stage / universal / migrations”,但我需要将其映射到文件夹“db”,如下所示:“... / target / stage / db / universal /迁移“
非常感谢提前!
答案 0 :(得分:1)
对于映射完整目录,您可以使用一些MappingHelpers。您的代码可以简化为
mappings in Universal ++= directory(baseDirectory.value / "migrations")
关于第二个问题,如何更改输出文件夹。问题不太正确,因为它应该是:&#34;如何更改映射的目标路径&#34;。通用包装有点特殊,因为目标输出看起来像生成的包。
Native Packager使用mappings
(File -> String
元组序列)定义文件以及生成的包中的相应输出路径。所以,如果你想改变
# current
./target/stage/universal/migrations
# expected
./target/stage/db/universal/migrations
我假设您希望将zip文件中的迁移放在db
这样的文件夹
/ # zip root
bin/ # start scripts
db/ # migrations go here
conf/ # configuration files
lib/ # jars
为了实现此目的,您必须更改目标字符串。这看起来像这样(未经测试):
mappings in Universal ++= contentOf(baseDirectory.value / "migrations").map {
case (file, dest) => file -> s"db/$dest"
}
欢呼声, 缪奇