At its core, Gradle is a general purpose tool that is capable of building and automating anything. Focussed functionality is added by plugins that extend Gradle and allow build engineers and build users to reuse patterns and practices, avoiding boilerplate build code. For example, Gradle's support for building Java projects is fully implemented as a plugin. Plugins have very deep access into the Gradle model, making almost anything possible. Plugins can also extend and compose themselves of other plugins.
Out of the box functionality means that you can get up and running quickly, and promote consistency in your builds. However, the reality of modern day software is that building and automation is a non trivial task that sometimes requires very specific configuration and unique requirements. Gradle acknowledges this reality and employs many techniques to make plugin provided functionality flexible, scalable and malleable. This allows you to use more existing plugin functionality, saving custom development effort.
Gradle ships with a number of key plugins that provide conventional support for building certain kinds of projects, such as…
- Java Plugin - compiling, testing and publishing Java based software
- Eclipse Plugin - integrating with the Eclipse IDE for development
- Maven Plugin - publishing to Maven dependency repositories
- Project Reports Plugin - generating reports containing useful information about your build
This is not an exhaustive list. The full list of plugins that are part of the core distribution can be found in the user guide.
There is also a growing number of free to use community developed plugins available for Gradle, such as…
- GradleFx Plugin - building Flex and Actionscript applications
- Google App Engine Plugin - developing for and deploying to Google's App Engine platform
- Android Plugin - developing applications for the Android mobile device platform
There is a curated list of notable community plugins. There are also many other plugins hosted in various locations across the Internet.
There are many ways to develop and reuse your own custom plugins, be they enterprise wide or build specific. See the user guide chapter on custom plugins to get started with plugin development.