관련 문서 페이지는 Tasks 및 TaskInputs입니다. 압축을 풀려면 sbt.IO.unzip(...)
을 사용할 수 있습니다.
먼저 작업의 키를 정의해야합니다 (.scala
빌드 정의에 있음). 이 작업은 압축 해제 된 파일 세트를 반환합니다.
val unzipPackage = TaskKey[Set[File]]("unzip-package", "unzips the JAR generated by package-src")
그런 다음 우리는 이와 같은 설정을 추가
unzipPackage <<= (packageSrc, target in unzipPackage, streams) map { (zipFile, dir, out) =>
IO createDirectory dir
val unzippedFiles = IO unzip (zipFile, dir, AllPassFilter)
out.log.info("Unzipped %d files of %s to %s" format (unzippedFiles size, zipFile, dir))
unzippedFiles
}
이것은 우리가 설정으로 출력 디렉토리를 정의하자, 너무 :이 도움이
target in unzipPackage <<= target/"unzippedPackage"
희망을.
고마워, 내가 집에 갈 때 이것을 시험해 보겠다. 간단한 질문이지만 튜플의 스트림 키는 무엇입니까? 또한 packageSrc TaskKey에서 map 함수를 직접 호출하는 것이 가능하기 때문에 packageSrc가 필요합니다. – pgraham
nm 두번째 질문, 나는 매뉴얼을보고 내가 할 수있는 것을 보았습니다 :) – pgraham
'streams' 키는 그냥 로깅을위한 것입니다; 그것은 함수 블록 내에서'out '이라고 불리우며'out.log.info', 즉 INFO 레벨에서 로깅에만 사용됩니다. 원래의 질문과 reeeeally 관련이 아니에요. 나는 단지 다른 일반적인 것들에 연결하는 방법을 보여주기 위해 그것을 포함시킬 것이라고 생각했습니다. :) –