maven
/maven/ Java and Android artifacts, from all four repos a build needs
How it works
-
Maven is the simplest shape of the lot: a flat file repository where a group/artifact/version coordinate is just a path. The .jar, .pom, and .aar files at that path, and their checksum siblings, never change once published, so they are cached permanently.
-
Four upstreams are exposed as separate sub-repos —
central,google,gradle-plugins, andgradle-dist— because a single Android build genuinely needs all four, and collapsing them into one namespace would make it impossible to tell which upstream an artifact came from. -
Exactly one file in a Maven repo is mutable:
maven-metadata.xml, which lists available versions. That one is revalidated and disk-cached the way the cargo and go index metadata is.
Things that have cost real time
Written down because they were paid for once already.
A Maven repo is immutable except for one file: maven-metadata.xml, which gains an entry whenever a version is published. So it and its checksum siblings are revalidated on every request while every GAV artifact is cached forever. Treating the whole repo as immutable is how a mirror stops seeing releases that exist.