Scala sbt - 使用通配符或正则表达式清理文件

Bra*_*mos 3 scala sbt

假设我有一个Scala程序,它创建以.foo.结尾的文件.

我正在构建,sbt并希望在sbt clean调用时删除这些文件.

在SBT构建添加额外的目录以清除任务显示可以添加单个文件

cleanFiles <+= baseDirectory { _ / "test.foo" }
Run Code Online (Sandbox Code Playgroud)

但是,目前还不清楚如何扩展这个:

cleanFiles <append> <*.foo>
Run Code Online (Sandbox Code Playgroud)

所有.foo文件都在同一目录中,因此我不需要递归检查目录.虽然,这也很有趣.

  1. 如何配置sbt清除与通配符或正则表达式匹配的文件?
  2. sbt clean删除程序生成的文件是一个糟糕的设计决定吗?我应该在程序中使用标志吗?使用sbt clean似乎吸尘器我而不必调用sbt clean然后sbt "run --clean".

Ale*_*ula 5

这将*.foo在基本目录中找到匹配的内容(但不是子目录):

cleanFiles <++= baseDirectory (_ * "*.foo" get)
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为它Seq[File]被隐式转换为a PathFinder,它具有诸如*(匹配基本目录**中的模式)和(匹配包含子目录的模式)之类的方法.然后get将其转换回Seq[File].