

So if you make changes in an included file, Gradle doesn’t think anything changed. If you list one main ProGuard file in your adle and include the rest from there, Gradle only sees the main file as an input. Gradle is really smart about avoiding unnecessary work, so if none of the inputs for a task have changed, then Gradle won’t rerun the task.

The reason for this is Gradle’s model of inputs and outputs for tasks. If you make a change in one of the included files, it won’t be picked up until you do a clean build.

It’s tempting to reference one main ProGuard file from your adle, and then put ‘-include’ entries in the main file to point to the rest, but there’s a problem with this. I like to organize my ProGuard rules by breaking them up into separate files, grouped by what they’re acting on - my data model, third-party libs, etc.
