在sbt 1.0.x中删除或排除WatchSource

adu*_*adu 7 scala build sbt playframework

概观

在浏览互联网一段时间之后,我还没有找到一种方法来省略某些文件夹sbt 1.0.x在Play Framework应用程序中被观看.

发布旧版本的解决方案sbt:

而发行说明1.0.2,该节目+=++=行为维持,但一切被放弃了.


很想知道是否有人使用sbt 1.0.x过这个问题找到了解决方案或解决方法.谢谢!

Mar*_*lic 1

采用 SBT如何排除 的方法,我能够省略观看自定义文件夹,如下所示:managedSourceswatchSources

watchSources := {
  val directoryToExclude = "/Users/mgalic/sandbox/scala/scala-seed-project/src/main/scala/dirToExclude"
  val filesToExclude = (new File(directoryToExclude) ** "*.scala").get.toSet
  val customSourcesFilter = new FileFilter {
    override def accept(pathname: File): Boolean = filesToExclude.contains(pathname)
    override def toString = s"CustomSourcesFilter($filesToExclude)"
  }

  watchSources.value.map { source =>
    new Source(
      source.base,
      source.includeFilter,
      source.excludeFilter || customSourcesFilter,
      source.recursive
    )
  }
},
Run Code Online (Sandbox Code Playgroud)

在这里我们用来PathFinder获取所有*.scala来源directoryToExclude

val filesToExclude = (new File(directoryToExclude) ** "*.scala").get.toSet
Run Code Online (Sandbox Code Playgroud)

然后我们创建customSourcesFilterusing filesToExclude,然后将其添加到每个 current WatchSource

  watchSources.value.map { source =>
    new Source(
      ...
      source.excludeFilter || customSourcesFilter,
      ...
    )
  }
Run Code Online (Sandbox Code Playgroud)

请注意,上述解决方案仅对我有用,也就是说,我不知道解决此问题的推荐方法是什么。