Im trying to figure out the logic of downloading dependencies from Maven and it looks like Gradle downloads all dependencies prior to build (even for configurations I am not using in this particular build).
I.e. Im trying to execute
assemble target (this is an Android project) which in theory doesn’t execute any tests. So I expect it to download only dependencies related to
compile configuration. Instead Im seeing Gradle downloading all the possible dependencies including ones related to
Is this an expected behavior? Is it possible to have some sort of “download on demand” rule?
Dependencies are downloaded only when a configuration they belong to is resolved.
So two possibilities here:
- Your unexpectedly downloaded artifacts belongs to the compile configuration
- you call another task that resolves the testCompile configuration
It looks like these dependencies are resolved during
:buildSrc:build task (I have some custom plugins in
buildSrc dir). Looking at my custom plugins I doesn’t look like I am resolving configurations there.
Will dig deeper into that…
Ok, ping back if you need help.
I myself experienced some unexpected configuration resolution, but in the end, after a closer look, it was totally logical.