: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) }
나는이 추가 디렉토리 "이름"이 함수 내부에 하드 코딩해야하는 이유를 이해하려고 노력 중이 야. 이전 배포 패키지 (sbt-native-packager 이전)에서는이 추가 디렉토리 레벨이 있다고 믿지 않습니다. 우리는 sbt-native-packager를 사용하여 이것을 가지고 있지 않은 배포판 zip/tgz를 생성하려고 시도하고 있으며, Archives.scala의 코드를 복사하고 해킹하여 다음과 같이 매핑합니다. Seq [(File, String) ]는 추가 "name"디렉토리를 갖는 것보다는 배포 패키지 내부의 구조에 직접적으로 대응하지만 분명히 이상적인 것은 아닙니다. 아마이 도메인에 익숙한 사람이 이것에 대해 밝힐 수 있습니까? (@jsuereth, 나는 너를보고있다 :))
글쎄, 나는 플래그를 통해이를 구성하는 대신에 이러한 기능의 보편성을 유지하기 위해 최상위 'name'디렉토리의 하드 코딩을 완전히 삭제해야한다고 제안한다. 이 함수를 호출하는 사람이라면 모든 매핑의 시작 부분에 '이름'을 추가하는 것이 쉽다는 것을 알 수 있습니다. 동의하니? – omnilinguist
호기심에서 벗어나, 당신은 어떤 기대를하고 있습니까? 위에서 지적했듯이, pre- (sbt-native-packager) 패키징 시스템은 이러한 최상위 '이름'디렉토리를 포함하지 않으므로 그 목적이 무엇인지 확실하지 않습니다. – omnilinguist
예, 다음과 같은 기대치가 있습니다. tar.gz를 다운로드합니다. 일부 OSS 리눅스 - y 소프트웨어의 파일. 다운로드하는 소프트웨어의 거의 모든 배포는 zip의 지정된 디렉토리에 있으므로 편리하게이 방법을 사용했습니다. 이는 게임 커뮤니티의 기대치가 아닙니다. 나는 native-packager가 JVM 커뮤니티를 외부 세계와 더 잘 일치 시키려고 노력한다고 믿는다. 즉, 이것은 완전히 구성 가능해야합니다. 버그를 열면 할 수있을 때까지갑니다. 죄송합니다 혼란/문제가 발생합니다. – jsuereth