Chapter 28. Standard Gradle plugins

Table of Contents

28.1. Language plugins
28.2. Incubating language plugins
28.3. Integration plugins
28.4. Incubating integration plugins
28.5. Software development plugins
28.6. Incubating software development plugins
28.7. Base plugins
28.8. Third party plugins

There are a number of plugins included in the Gradle distribution. These are listed below.

28.1. Language plugins

These plugins add support for various languages which can be compiled for and executed in the JVM.

Table 28.1. Language plugins

Plugin Id Automatically applies Works with Description
java java-base -

Adds Java compilation, testing and bundling capabilities to a project. It serves as the basis for many of the other Gradle plugins. See also Chapter 46, Java Quickstart.

groovy java, groovy-base -

Adds support for building Groovy projects. See also Chapter 55, Groovy Quickstart.

scala java, scala-base -

Adds support for building Scala projects.

antlr java -

Adds support for generating parsers using Antlr.

28.2. Incubating language plugins

These plugins add support for various languages:

Table 28.2. Language plugins

Plugin Id Automatically applies Works with Description
assembler - -

Adds native assembly language capabilities to a project.

c - -

Adds C source compilation capabilities to a project.

cpp - -

Adds C++ source compilation capabilities to a project.

objective-c - -

Adds Objective-C source compilation capabilities to a project.

objective-cpp - -

Adds Objective-C++ source compilation capabilities to a project.

windows-resources - -

Adds support for including Windows resources in native binaries.

28.3. Integration plugins

These plugins provide some integration with various runtime technologies.

Table 28.3. Integration plugins

Plugin Id Automatically applies Works with Description
application java, distribution -

Adds tasks for running and bundling a Java project as a command-line application.

ear - java

Adds support for building J2EE applications.

maven - java, war

Adds support for publishing artifacts to Maven repositories.

osgi java-base java

Adds support for building OSGi bundles.

war java -

Adds support for assembling web application WAR files. See also Chapter 49, Web Application Quickstart.

28.4. Incubating integration plugins

These plugins provide some integration with various runtime technologies.

Table 28.4. Incubating integration plugins

Plugin Id Automatically applies Works with Description
distribution - -

Adds support for building ZIP and TAR distributions.

java-library-distribution java, distribution -

Adds support for building ZIP and TAR distributions for a Java library.

ivy-publish - java, war

This plugin provides a new DSL to support publishing artifacts to Ivy repositories, which improves on the existing DSL.

maven-publish - java, war

This plugin provides a new DSL to support publishing artifacts to Maven repositories, which improves on the existing DSL.

28.5. Software development plugins

These plugins provide help with your software development process.

Table 28.5. Software development plugins

Plugin Id Automatically applies Works with Description
announce - -

Publish messages to your favourite platforms, such as Twitter or Growl.

build-announcements announce -

Sends local announcements to your desktop about interesting events in the build lifecycle.

checkstyle java-base -

Performs quality checks on your project's Java source files using Checkstyle and generates reports from these checks.

codenarc groovy-base -

Performs quality checks on your project's Groovy source files using CodeNarc and generates reports from these checks.

eclipse - java,groovy, scala

Generates files that are used by Eclipse IDE, thus making it possible to import the project into Eclipse. See also Chapter 46, Java Quickstart.

eclipse-wtp - ear, war

Does the same as the eclipse plugin plus generates eclipse WTP (Web Tools Platform) configuration files. After importing to eclipse your war/ear projects should be configured to work with WTP. See also Chapter 46, Java Quickstart.

findbugs java-base -

Performs quality checks on your project's Java source files using FindBugs and generates reports from these checks.

idea - java

Generates files that are used by Intellij IDEA IDE, thus making it possible to import the project into IDEA.

jdepend java-base -

Performs quality checks on your project's source files using JDepend and generates reports from these checks.

pmd java-base -

Performs quality checks on your project's Java source files using PMD and generates reports from these checks.

project-report reporting-base -

Generates reports containing useful information about your Gradle build.

signing base -

Adds the ability to digitally sign built files and artifacts.

28.6. Incubating software development plugins

These plugins provide help with your software development process.

Table 28.6. Software development plugins

Plugin Id Automatically applies Works with Description
build-dashboard reporting-base -

Generates build dashboard report.

build-init wrapper -

Adds support for initializing a new Gradle build. Handles converting a Maven build to a Gradle build.

cunit - -

Adds support for running CUnit tests.

jacoco reporting-base java

Provides integration with the JaCoCo code coverage library for Java.

visual-studio - native language plugins

Adds integration with Visual Studio.

wrapper - -

Adds a Wrapper task for generating Gradle wrapper files.

java-gradle-plugin java

Assists with development of Gradle plugins by providing standard plugin build configuration and validation.

28.7. Base plugins

These plugins form the basic building blocks which the other plugins are assembled from. They are available for you to use in your build files, and are listed here for completeness. However, be aware that they are not yet considered part of Gradle's public API. As such, these plugins are not documented in the user guide. You might refer to their API documentation to learn more about them.

Table 28.7. Base plugins

Plugin Id Description
base

Adds the standard lifecycle tasks and configures reasonable defaults for the archive tasks:

  • adds build ConfigurationName tasks. Those tasks assemble the artifacts belonging to the specified configuration.
  • adds upload ConfigurationName tasks. Those tasks assemble and upload the artifacts belonging to the specified configuration.
  • configures reasonable default values for all archive tasks (e.g. tasks that inherit from AbstractArchiveTask). For example, the archive tasks are tasks of types: Jar, Tar, Zip. Specifically, destinationDir, baseName and version properties of the archive tasks are preconfigured with defaults. This is extremely useful because it drives consistency across projects; the consistency regarding naming conventions of archives and their location after the build completed.

java-base

Adds the source sets concept to the project. Does not add any particular source sets.

groovy-base

Adds the Groovy source sets concept to the project.

scala-base

Adds the Scala source sets concept to the project.

reporting-base

Adds some shared convention properties to the project, relating to report generation.

28.8. Third party plugins

You can find a list of external plugins at the Gradle Plugins site.