Fix build events and operations for composite builds - Add common 'Load build' operation for init and settings of every build - Fire correct build events for unused included builds - Fire correct build events for included build executed on-demand for buildscript classpath
Calculate task graphs for all included builds before commencing execution This change allows us to determine more of the required tasks up-front, rather than relying on discovery of these tasks during build execution. For example, transitive `compileOnly` dependencies will now be determined prior to executing tasks in any build.
In doing so, we greatly reduce the number of cases where a build may be executed twice in a single invocation. This is largely now limited to: - An included build producing a plugin artifact as well as an artifact required as a task input - An included build that provides 2 outputs, one that is resolved at configuration time and another as a regular task input - Using the IDE generation tasks combined with another task that uses an included build output.