The D.R.Y. of builds
Gradle Plugins

- Download
- Download
- Sources Code
- Look at sources
Table of Contents
Inception
This project has been long-running. Initially it was just some quality plugins for multi-module development, now it has grown to many Gradle utilities I use in my projects and accumulates my Gradle knowledge in some form.
The Android Lint report in AGP works on individual modules, but at work we used TeamCity which was able to show a single HTML file in a “Report Tab”. I wanted to ease the pain of developers by providing a single HTML file that contains all the reports from all the modules. This is how the net.twisterrob.gradle.quality
plugin was born.
I also needed a way to share configuration between my projects, so I don’t have to repeat complex Gradle scripts and can improve and fix bugs centrally. This was called “private” plugin and was recently migrated to the same repository as the quality plugins with the name “convention” plugins. Along with this the experimental Gradle Task Graph visualization was also moved and published.
Motivation
This project is my testbed of discovering and learning new Gradle APIs and features. I also learned to polyfill/hack internals to bend the build system to my needs.
Implementation
I wanted everything to be tested from the get-go, so I set up a very complex Gradle / AGP / Java testing matrix to test for compatibility issues. This is still live, but I recently had to stop supporting older versions, because the maintenance was becoming unwieldy. Also since I started “Renovate”-ing all my projects, older version support is no longer an issue.
History
See releases on GitHub for details.