Closed gavra0 closed 1 year ago
@ejona86 You analysis is correct: during task graph building Gradle had to compute return value of providerFactory.provider
and to invoke get()
on this provider. With FileCollection.getElements()
the dependency information is already in that provider and it does not need to do a get()
on it.
Thanks for a quick review :)
Rely on FileCollection.getElements() (available in Gradle 5.6+) to ensure no files are accessed eagerly during configuration. This also ensures configuration cache key does not depend on them.
Fixes issue #711.
Test: Added "testProjectDependent proto extraction with configuration cache" with Gradle 8.1