Например, в 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) ] соответствуют непосредственно структуре внутри дистрибутивных пакетов, а не дополнительной директории «name», но очевидно, что это не идеально. Возможно, кто-то, знакомый с этим доменом, может пролить свет на это? (@jsuereth, я смотрю на тебя :))