Enable the local build cache in gradle.properties: org.gradle.caching=true — this activates both local and (if configured) remote caching for all builds
Add the Develocity plugin to settings.gradle: plugins { id 'com.gradle.develocity' version 'CURRENT_VERSION' } and configure the server URL: develocity { server = 'https://your-develocity-server.example.com' }
Configure the remote build cache in settings.gradle inside a buildCache block: remote(HttpBuildCache) { url = 'https://your-develocity-server.example.com/cache/'; push = System.getenv('CI') == 'true' } to push only from CI
Authenticate remote cache pushes by setting credentials via an environment variable or a .gradle/gradle.properties file with buildCache.remote.username and buildCache.remote.password; do not commit credentials
Make tasks cacheable by annotating task inputs and outputs with @Input, @InputFiles, @OutputFile etc. in custom task code; built-in Gradle tasks (compileJava, test) are cacheable by default
Inspect cache performance by opening the build scan on your Develocity server and reviewing the Build Cache tab for hit/miss rates and savings
Known gotchas
The Develocity Build Cache Node component is deprecated and will reach end-of-support at end of 2026; migrate to Develocity Edge before that date if you run a self-hosted cache node
Tasks with non-reproducible outputs (timestamps, random values embedded in outputs) will never hit the cache; audit custom tasks for undeclared inputs or volatile outputs that cause constant misses
Setting push = true unconditionally means every developer machine pushes to the remote cache, which can flood it with personal-branch artifacts; restrict push to CI by checking an environment variable
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp