2016-06-22 1 views
1

내 프로젝트에 사용자 지정 작업을 정의하고 싶습니다. build.sbt 파일. sbt-assembly 플러그인의 assembly 작업은 어셈블 된 각 jar의 파일 이름을 반환합니다. 사용자 지정 작업은 assembly 작업이 완료 될 때까지 대기하고 파일 이름 목록을 사용하여 셸 스크립트를 실행해야합니다.사용자 지정 작업 전에 sbt- 어셈블리를 시퀀싱하는 방법

여기에 내가 Def.sequential를 사용하여 시도

lazy val listOfFiles = taskKey[Unit]("Run script passing jar file names as parameters.") 

listOfFiles := { 
    val files = List[File]() 
    files :+ assembly 
    // run script passing file names as parameters 
} 

을 달성하기 위해 노력하고있어의 생각하지만 난 내 사용자 지정 작업의 요구 사항에 적합 생각하지 않습니다. 이처럼 사용자 지정 작업을 만드는 방법에 대한 도움은 매우 감사하겠습니다!

답변

1

온라인으로 문서를 검색하고 검색하는 데 많은 시간을 보낸 후 약간 잘못된 방식으로 문제를 생각하고 있음을 발견했습니다. listOfFiles 작업이 위의 프로젝트 1, 프로젝트 2, 프로젝트 3의 범위에 조립 작업을 실행합니다

lazy val listOfFiles = taskKey[Unit]("Run script passing jar file names as parameters.") 

listOfFiles := { 
    val files = assembly.all(ScopeFilter(inProjects(project1, project2, project3))).value 
    files.map(x => println("jar file: " + x)) 
    // run script passing file names as parameters 
} 

및 파일의 시퀀스를 반환 :

내가 함께 온 솔루션은이 같은 작업을 정의하는 것입니다 이름. 이것이 내가 성취하려고 시도한 것입니다. 희망이 사람을 도움이됩니다.

관련 문제