One of the great things about Gradle Build Tool is that plugins are easy to write and there is a thriving ecosystem of freely available community plugins. It's easy to find one or more plugins that implement desired functionality, however, it's hugely disappointing when a plugin provides an awesome capability, but wreaks havoc on the performance of the build, creates undesirable side effects, or doesn't work with a certain version of Gradle. If only every Gradle plugin was written and tested well.
This talk is intended for Gradle plugin authors who want to learn how to write plugins that consumers will love to use. We'll explore the following concerns by looking at an example plugin and discussing ways to improve it:
- Plugin architecture
- Task configuration avoidance
- Configuration cache compatibility
- Planning for and testing with the build cache
- Backwards compatibility testing
You'll learn strategies for not only writing your plugin well, but keeping it healthy and well behaved as it evolves and new versions of Gradle are released.