Get hands-on training on how to tackle build performance issues with the Maven build cache.
In this training, you will learn the basics and best practices to make the most of caching in your build. We’ll discuss the different possible architectures, how they affect build performance, and how Develocity can help you manage, analyze, and troubleshoot the build cache.
3-hour training session followed by 30-minutes Q&A.
Maven build tool users, as well as Develocity users interested in speeding up builds, are encouraged to attend the training.
This course assumes a good understanding of the Java language and working knowledge of Maven.
After this training the participants will be able to:
- Understand the benefits of using the Maven build cache
- Use and configure the build cache
- Optimize build logic for maximum cacheability
- Maximize the benefits of the build cache with Develocity
- Performance is key
- Approaches for work avoidance
- Common use cases
- Faster Maven builds on CI
- Visualized savings in Develocity
What is the build cache?
- How does it work?
- Different types of build caches
- Local build cache
- Remote build cache
- Recommended sharing strategy
- Influencing factors
Using the build cache
- Enabling the cache
- Adding the Maven extension
- Generating a build scan
- Adding the Develocity server URL
- What’s going on under the hood?
- Configuring the local build cache
- Lab: Using the local build cache
- Referencing the Develocity credentials
- Configuring the credentials
- Enabling the cache on CI
- Computing the build cache key
- Build cache operations
- Lab: Using the remote build cache
What makes a build “cacheable”?
- Cacheability influencing factors
- Cacheable plugins and goals
- Customization of caching behavior
- Configuring the Maven extension
- Declaring inputs and outputs
- Disabling cacheability
- Lab: Equipping goals with caching capabilities
Troubleshooting the build cache misses
- Possible approaches
- Debug log level console information
- Finding cause of cache misses
- Using build scans
Requirements for cacheable goals
- Repeatable goal outputs
- Stable goal outputs
- Path sensitivity
- Input normalization
Handling cases affecting cache correctness
- Overlapping outputs
- External inputs like system properties
- File encoding
- Line endings
- Java versions
- Lab: Handling cache misses
Getting started with the build cache
- Recommended approach
- Installing the remote build cache
- Connecting to Develocity
- Documentation and resources
- Try Develocity for free