There seems to be a regression in 2.11 around registering file watchers when using the continuous mode. It looks like if a task is executed that registers an input file inside of a directory and then there is a task that registers that directory as an input then any changes made to files which are located in subdirectories of that file do not trigger a rebuild.
I managed to reproduce that on 2.11 and 2.12 but it works correctly on 2.10.
To reproduce:
- clone https://github.com/erdi/continuous-bug
- run ./gradlew outer -t
- change src/topLevel.txt and see the build being retriggerred
- change src/subdirectory/nested.txt and see that the build is not retriggered
If you change the version of the wrapper to 2.10 then changing src/subdirectory/nested.txt will retrigger the build.
If you change the outer task not to depend on the inner task while using 2.11 then changing changing src/subdirectory/nested.txt will also retrigger the build.
I had a peek at WatchPointsRegistry and WatchServiceRegistrar and it looks like @lhotari might be the best person to investigate this.