为什么sbt-native-packager在分发包中生成硬编码的顶级父目录?

时间:2013-11-21 22:20:00

标签: scala sbt sbt-native-packager

例如,在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) }

我试图理解为什么必须在这些函数中硬编码这个附加目录“name”的原因。在旧的分发包(在sbt-native-packager之前),我不相信这个额外的目录级别。我们正在尝试使用sbt-native-packager来创建一些没有这个的分发zip / tgz,并且暂时复制并破解了Archives.scala中的代码,以便映射:Seq [(File,String) ]直接对应于分发包内的结构而不是具有附加的“name”目录,但显然这并不理想。也许熟悉这个领域的人可以对此有所了解? (@jsuereth,我在看着你:))

1 个答案:

答案 0 :(得分:2)

这更多是因为我的期望比什么都重要。您应该打开一个票证来增强项目,以便通过标志配置此行为。