例如,在 Archives.scala 中:
def makeZip(target: File, name: String, mappings: Seq[(File, String)]): File = {
...
val m2 = mappings map { case (f, p) => f -> (name +"/"+p) }
def makeTarball(compressor: File => File, ext: String)(target: File, name: String, mappings: Seq[(File, String)]): File = {
...
val m2 = mappings map { case (f, p) => f -> (rdir / name / p) }
我试图理解为什么必须在这些函数中硬编码这个附加目录“名称”的原因。在旧的分发包中(在 sbt-native-packager 之前),我不相信这个额外的目录级别存在。我们正在尝试使用 sbt-native-packager 创建一些没有这个的分发 zip/tgz,并且目前已经复制并破解了 Archives.scala 中的代码,以便映射:Seq[(File, String) ] 直接对应于分发包内部的结构,而不是具有附加的“名称”目录,但显然这并不理想。也许熟悉这个领域的人可以对此有所了解?(@jsuereth,我在看着你 :))