2014-06-05 47 views
3

我想弄清楚如何編寫一個輸入過濾器來匹配任何具有指定子目錄中特定擴展名的文件。我似乎無法得到它的工作。SBT:如何定義包含特定路徑中所有文件的includeFilter?

更具體地說,我想包括modules/*.styl

我有一個時間赫克得到該模式在我build.sbt文件工作我想要做這樣的事情:

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

我還沒有能夠想出甚至可以讓SBT啓動的任何東西。任何人都有線索?

我正在使用SBT 0.13.5。

回答

2

首先includeFilter密鑰的類型爲FileFilter。看看this link看看它是如何定義的。

我認爲有沒有簡單的方法來做你想做的事情,因爲從StringFileFilter的隱含產生只有NameFilter。那些只測試文件名,而不是你想要的路徑。

您可以根據提供的示例定義您自己的FileFilter。這個想法是:爲父目錄創建一個過濾器,然後將其與PatternFilter合併爲文件名。

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

當然,您可能需要根據需要修改傳遞給SimpleFileFilter的函數。

相關問題