2016-06-28 6 views
1

특정 파일 (또는 파일 패턴)을 특정 디렉토리에 복사하는 sbt 작업을 어떻게 작성 하시겠습니까?SBT의 특정 파일 복사

(예를 들어, client/target/foobar.js에서 dist/js까지 및 server/target/web/public/*.*에서 dist/assets까지 복사).

이 작업을 수행하기 위해 플러그인을 작성하고 싶지 않지만 기존 플러그인을 사용하면 좋습니다. 당신이 정말로 그것을 별도의 작업을하고 싶다면

답변

2

, 당신은 copyResourcesTaskDefaults.scala에서 시작할 수 있습니다 :

def copyResourcesTask = 
    (classDirectory, resources, resourceDirectories, streams) map { (target, resrcs, dirs, s) => 
     val cacheFile = s.cacheDirectory/"copy-resources" 
     val mappings = (resrcs --- dirs) pair (rebase(dirs, target) | flat(target)) 
     s.log.debug("Copy resource mappings: " + mappings.mkString("\n\t", "\n\t", "")) 
     Sync(cacheFile)(mappings) 
     mappings 
    } 

그냥 당신이 원하는 것과 mappings을 변경 (수정하고, 작업 당신은에 의존). 또는 기존 작업에서 매핑을 수정하십시오. 문서의 Mapping Files을 참조하십시오.