SBT:如何定义包含特定路径中所有文件的includeFilter?

时间:2014-06-05 22:20:25

标签: scala sbt

我正在试图弄清楚如何编写一个输入过滤器,该过滤器匹配指定子目录中具有特定扩展名的任何文件。我似乎无法让它发挥作用。

更具体地说,我想要包含modules/*.styl

我有点时间让这个模式在我的build.sbt文件中工作我试图做这样的事情:

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

我无法想出任何甚至可以让SBT启动的东西。有人有线索吗?

我正在使用SBT 0.13.5。

1 个答案:

答案 0 :(得分:2)

首先includeFilter键的类型为FileFilter。查看this link以查看其定义方式。

我认为没有简单的方法可以做你想要的事情,因为从StringFileFilter的隐含只产生NameFilter。那些只测试文件名,而不是你想要的路径。

您可以根据提供的示例定义自己的FileFilter。想法:为父目录创建一个过滤器,然后将其与PatternFilter组合用于文件名。

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

当然,您可能需要根据需要修改传递给SimpleFileFilter的函数。