3

假设我有一个 Scala 程序,它创建以.foo.

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

在 SBT 构建中添加附加目录以清理任务表明可以通过以下方式添加单个文件

cleanFiles <+= baseDirectory { _ / "test.foo" }

但是,目前尚不清楚如何将其扩展为:

cleanFiles <append> <*.foo>

所有.foo文件都在同一个目录中,所以我不需要递归检查目录。不过,这也很有趣。

  1. 如何配置sbt以清理匹配通配符或正则表达式的文件?
  2. sbt clean删除我的程序生成的文件是一个糟糕的设计决定吗?我应该在我的程序中使用标志吗?usingsbt clean对我来说似乎更干净,而不是不得不打电话sbt cleanthen sbt "run --clean"
4

1 回答 1

5

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

cleanFiles <++= baseDirectory (_ * "*.foo" get)

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

于 2013-04-10T18:57:38.743 回答