2014-06-05 1 views
3

나는 지정된 하위 디렉토리의 특정 확장명을 가진 파일과 일치하는 입력 필터를 작성하는 방법을 알아 내려고하고 있습니다. 나는 그것이 작동하도록 할 수 없습니다.SBT : 특정 경로의 모든 파일을 포함하는 includeFilter를 정의하는 방법은 무엇입니까?

includeFilter in (Assets, StylusKeys.stylus) := "modules" * "*.styl" 
:

은보다 구체적으로, 난 내가 이런 일을 할 노력하고있어 내 build.sbt 파일에서 작업하는 패턴을 얻는 시간의 지옥을 보내고 있습니다 modules/*.styl

을 포함 할

나는 SBT가 시작되도록 허용 할만한 것 하나도 찾을 수 없었다. 누구나 단서가 있습니까?

SBT 0.13.5를 사용하고 있습니다.

답변

2

먼저 includeFilter 키의 유형은 FileFilter입니다. 그것이 어떻게 정의되는지 보려면 this link을보십시오.

String에서 FileFilter까지의 implicits가 생성되기 때문에 쉬운 방법이 없다고 생각합니다. NameFilter 만 생성합니다. 파일 이름 만 테스트하고 원하는 경로는 테스트하지 않습니다.

제공되는 예제에 따라 FileFilter을 직접 정의 할 수 있습니다. 아이디어 : 부모 디렉토리에 대해 하나의 필터를 만든 다음 파일 이름을 PatternFilter으로 결합합니다.

includeFilter in (Assets, StylusKeys.stylus) := new SimpleFileFilter(file => file.getParent == "modules") && "*.styl" 

물론 필요에 따라 전달 된 기능을 SimpleFileFilter으로 수정해야 할 수 있습니다.

관련 문제