I’ve found that the greatest points with Gradle, namely the phases, injection with closures etc is also it’s weakest points at the moment when there is a particular result or a particular problem one is attempting to realise or troubleshoot.
The problem is that quite fast there is a myriad of println’s everywhere, but even that isn’t enough because sometimes the problem is that the data is not in the right place at the right time (after a project is evaluated, all projects are evaluated or when the taskgraph is ready) - so adding println is a minor art form in itself half the time.
I think the best way to remove this obstacle to trying to understand what is going on would be if you added a data tracing mode, whereby the data structures were printed out. That is after all what one is after most of the time but unless there is a “println” one very rarely know exactly what kind of data a task is operating with.
I don’t know how easy this would be, but maybe there could be a way to use reflections to save off the data in some human readable form for each stage and phase gradle is going through, when the data tracing mode is turned on?