The use I was putting it to was building a “launcher”, either windows exe or a mac app bundle. The launcher in both cases contains the version as a property and so I want the it to be rebuilt when I update the version, even if nothing else has changed in the source code. Would be very embarrassing to finally say, “yep 1.0 is ready to go” and then have the launcher say something ugly like “I am version 1.0-rc27-SNAPSHOT”. I am sure there are lots of other cases where the thing that is no longer “up to date” isn’t a file, but you still want to trigger a task to run.
An example is here, where the GenerateInfoPlistTask depends on the projects version.
I agree, Gradle is pretty amazing. The only downside is that I feel like the cool features are coming faster than I can learn about them.