mirror of https://github.com/sbt/sbt.git
It makes sense for the new glob/nio based apis that we provide first class support for filtering the results. Because it isn't possible to scope a task within a task within a task, i.e. `compile / fileInputs / includePathFilter`, I had to add four new filter settings of type `PathFilter`: fileInputIncludeFilter :== AllPassFilter.toNio, fileInputExcludeFilter :== DirectoryFilter.toNio || HiddenFileFilter, fileOutputIncludeFilter :== AllPassFilter.toNio, fileOutputExcludeFilter :== NothingFilter.toNio, Before I was effectively hard-coding the filter: RegularFileFilter && !HiddenFileFilter in the inputFileStamps and allInputFiles tasks. These remain the defaults, as seen in the fileInputExcludeFilter definition above, but can be overridden by the user. It makes sense to exclude directories and hidden files for the input files, but it doesn't necessarily make sense to apply any output filters by default. For symmetry, it makes sense to have them, but they are unlikely to be used often. Apart from adding and defining the default values for these keys, the only other changes I had to make was to remove the hard-coded filters from the allInputFiles and inputFileStamps tasks and also add the filtering to the allOutputFiles task. Because we don't automatically calculate the FileAttributes for the output files, I added logic for bypassing the path filter application if the PathFilter is effectively AllPass, which is the case for the default values because: AllPassFilter.toNio == AllPass NothingFilter.toNio == NoPass AllPass && !NoPass == AllPass && AllPass == AllPass |
||
|---|---|---|
| .github/ISSUE_TEMPLATE | ||
| core-macros/src/main/scala/sbt/internal/util/appmacro | ||
| internal | ||
| launch | ||
| licenses | ||
| main | ||
| main-actions/src | ||
| main-command/src | ||
| main-settings/src | ||
| notes | ||
| project | ||
| protocol/src/main | ||
| run | ||
| sbt/src | ||
| scripted-plugin/src/main/scala/sbt | ||
| scripted-sbt-old/src/main/scala/sbt/test | ||
| scripted-sbt-redux | ||
| src/main/conscript | ||
| tasks | ||
| tasks-standard | ||
| testing | ||
| vscode-sbt-scala | ||
| zinc-lm-integration/src | ||
| .appveyor.yml | ||
| .gitattributes | ||
| .gitignore | ||
| .java-version | ||
| .mailmap | ||
| .sbtopts | ||
| .scalafmt.conf | ||
| .travis.yml | ||
| CONTRIBUTING.md | ||
| DEVELOPING.md | ||
| LICENSE | ||
| NOTICE | ||
| PROFILING.md | ||
| README.md | ||
| SUPPORT.md | ||
| build.sbt | ||
| reset.sh | ||
| sbt-allsources.sh | ||
| server.md | ||
README.md
sbt
sbt is a build tool for Scala, Java, and more.
For general documentation, see http://www.scala-sbt.org/.
sbt 1.x
This is the 1.x series of sbt. The source code of sbt is split across several GitHub repositories, including this one.
- sbt/io hosts
sbt.iomodule. - sbt/util hosts a collection of internally used modules.
- sbt/librarymanagement hosts
sbt.librarymanagementmodule that wraps Ivy. - sbt/zinc hosts Zinc, an incremental compiler for Scala.
- sbt/sbt, this repository hosts modules that implements the build tool.
Other links
- Setup: Describes getting started with the latest binary release.
- FAQ: Explains how to get help and more.
- sbt/sbt-zero-seven: hosts sbt 0.7.7 and earlier versions
Issues and Pull Requests
Please read CONTRIBUTING carefully before opening a GitHub Issue.
The short version: try searching or asking on StackOverflow.
license
See LICENSE.