我正在试图弄清楚如何编写一个输入过滤器,该过滤器匹配指定子目录中具有特定扩展名的任何文件。我似乎无法让它发挥作用。
更具体地说,我想要包含modules/*.styl
我有点时间让这个模式在我的build.sbt
文件中工作我试图做这样的事情:
includeFilter in (Assets, StylusKeys.stylus) := "modules" * "*.styl"
我无法想出任何甚至可以让SBT启动的东西。有人有线索吗?
我正在使用SBT 0.13.5。
答案 0 :(得分:2)
首先includeFilter
键的类型为FileFilter
。查看this link以查看其定义方式。
我认为没有简单的方法可以做你想要的事情,因为从String
到FileFilter
的隐含只产生NameFilter
。那些只测试文件名,而不是你想要的路径。
您可以根据提供的示例定义自己的FileFilter
。想法:为父目录创建一个过滤器,然后将其与PatternFilter
组合用于文件名。
includeFilter in (Assets, StylusKeys.stylus) := new SimpleFileFilter(file => file.getParent == "modules") && "*.styl"
当然,您可能需要根据需要修改传递给SimpleFileFilter
的函数。