I had the following code like the following that worked previously:
.settings(watchSources := watchSources.value.filterNot(_.getPath.contains("target")))
In SBT 1.x this results in:
error: value getPath is not a member of sbt.Watched.WatchSource
x.getPath.contains("target")
Expanding the code slightly by adding a type to the function paramemter of filterNot
:
.settings(watchSources := (watchSources.value.filterNot{x: File =>
x.getPath.contains("target")
}))
we get a separate error:
[info] Loading project definition from /home/brandon/workspace/CCRS/project
/home/brandon/workspace/CCRS/build.sbt:111: error: type mismatch;
found : sbt.File => Boolean
(which expands to) java.io.File => Boolean
required: sbt.Watched.WatchSource => Boolean
(which expands to) sbt.internal.io.Source => Boolean
.settings(watchSources := watchSources.value.filterNot{x: File =>
^
The strange thing is that IntelliJ seems to think the code looks fine as is (I did restart IntelliJ after updating my build.properties
with the latest version of SBT) - it sees the value x
as a File
, not as a WatchSource
, and it indicates that watchSources.value
is of type Seq[File]
.
This related but more general question ( Remove or Exclude WatchSource in sbt 1.0.x ) doesn't seem to have garnered any attention thus far.