Gradle Plugin Reference
This page contains links and short descriptions for all the core plugins provided by Gradle itself.
JVM languages and frameworks
- Java —
java -
Compiles, tests, and packages Java source code, and provides the foundational configurations, source sets, and tasks reused by higher-level JVM plugins.
- Java Library —
java-library -
Extends the Java plugin with a proper
api/implementationseparation so a library exposes only its intended public dependencies to consumers. - Java Platform —
java-platform -
Publishes a set of dependency constraints as a platform (Maven BOM equivalent) that other projects can align their versions against.
- Groovy —
groovy -
Adds joint Java/Groovy compilation, Groovydoc, and the
groovyconfiguration on top of the Java plugin for building Groovy projects. - Scala —
scala -
Adds Scala compilation, ScalaDoc, and Zinc-based incremental compilation on top of the Java plugin for building Scala projects.
- ANTLR —
antlr -
Generates parser and lexer sources from ANTLR grammar files and wires the generated code into the Java compile task.
- JVM Test Suite —
jvm-test-suite -
Declaratively models multiple test suites (unit, integration, functional) as first-class citizens with their own source sets, dependencies, and tasks. Applied automatically by the
javaplugin. - Test Report Aggregation —
test-report-aggregation -
Aggregates the results of multiple Test task invocations (potentially spanning multiple Gradle projects) into a single HTML report.
- Java Test Fixtures —
java-test-fixtures -
Produces a
testFixturescomponent so a project can share reusable test helpers, doubles, and builders with its own test source set and with downstream consumers. - JVM Toolchains —
jvm-toolchains/jvm-toolchain-management -
Selects and provisions the JDK used to build and test. Applied automatically by JVM plugins in projects (
jvm-toolchains), and used insettings.gradle(.kts)to configure toolchain download repositories (jvm-toolchain-management).
Native languages
- C++ Application —
cpp-application -
Builds an executable C++ application, with multi-variant support for debug/release, target machines, and toolchains on Windows, Linux, and macOS.
- C++ Library —
cpp-library -
Builds a shared or static C++ library, with the same variant model as
cpp-applicationfor cross-platform builds on Windows, Linux, and macOS. - C++ Unit Test —
cpp-unit-test -
Adds a native executable test suite backed by a C test entry point, and wires it into the C variant model for Windows, Linux, and macOS.
- Swift Application —
swift-application -
Builds an executable Swift application, integrating with the Swift compiler and the variant model used by other native plugins on Linux and macOS.
- Swift Library —
swift-library -
Builds a Swift library (static or shared) and exposes it through the same variant model as
swift-applicationon Linux and macOS. - XCTest —
xctest -
Adds an XCTest-based test executable for Swift or Objective-C code, running against the XCTest framework on Linux and macOS.
Packaging and distribution
- Application —
application -
Packages a JVM application together with its runtime classpath and generates cross-platform
run,installDist, anddistZip/distTartasks with launcher scripts. - WAR —
war -
Assembles a Java web application as a WAR archive, including
web.xml, static resources, and the runtime classpath underWEB-INF/lib. - EAR —
ear -
Assembles a Java EE Enterprise Archive (EAR) from component modules, including the
application.xmldeployment descriptor and shared library modules. - Maven Publish —
maven-publish -
Publishes artifacts to Maven-compatible repositories, generating a POM per publication and supporting local and remote repositories.
- Ivy Publish —
ivy-publish -
Publishes artifacts to Ivy-compatible repositories, generating an
ivy.xmlper publication and supporting local and remote repositories. - Distribution —
distribution -
Defines named distributions (a set of files bundled together) and generates ZIP and tarball assemble/install tasks for each.
- Java Library Distribution —
java-library-distribution -
Creates a ZIP distribution of a Java library project that bundles the library JAR alongside its runtime dependencies for offline use.
Code analysis
- Checkstyle —
checkstyle -
Runs Checkstyle against Java source sets and generates HTML/XML reports; configurable via a shared Checkstyle configuration file.
- PMD —
pmd -
Runs PMD against Java source sets and generates HTML/XML reports of code style and correctness violations.
- JaCoCo —
jacoco -
Adds JaCoCo code coverage to
Testtasks and generates coverage reports and coverage-based build verification checks. - JaCoCo Report Aggregation —
jacoco-report-aggregation -
Aggregates the results of multiple JaCoCo code coverage reports (potentially spanning multiple Gradle projects) into a single HTML report.
- CodeNarc —
codenarc -
Runs CodeNarc against Groovy source sets and generates HTML/XML/text reports of style and correctness violations.
IDE integration
- Eclipse —
eclipse/eclipse-wtp -
Generates Eclipse project metadata (
.project,.classpath) and customizes how Eclipse and Buildship import your build. Useeclipse-wtpfor web projects. - IntelliJ IDEA —
idea -
Generates IntelliJ IDEA project metadata (
.ipr,.iml,.iws) and customizes how IntelliJ IDEA imports your build. - Visual Studio —
visual-studio -
Generates a Visual Studio solution and per-component project files for the current C++ build so it can be opened directly in the IDE.
- Xcode —
xcode -
Generates an Xcode workspace and per-component project files for the current C++/Swift build so it can be opened directly in the IDE.
Utility
- Base —
base -
Provides the common
clean,assemble,check, andbuildlifecycle tasks and the archive/distribution conventions reused by most other plugins. Applied transitively by any plugin that adds archives or lifecycle tasks (JVM, native, distribution), so it rarely needs to be applied directly. - Wrapper —
wrapper -
Registers the
wrappertask that generates the Gradle Wrapper scripts andgradle-wrapper.propertiesfor a project. Applied automatically to the root project, so it never needs to be applied directly. - Build Init —
build-init -
Generates a new Gradle build of a specified type (Java library, Kotlin application, and so on). Can also generate a build from a Maven POM — see Migrating from Maven to Gradle.
- Signing —
signing -
Digitally signs generated files and artifacts (typically with PGP), and wires signatures into Maven and Ivy publications.
- Plugin Development —
java-gradle-plugin -
Configures a project for authoring Gradle plugins in Java, Groovy, or Kotlin; adds the
gradleApi()dependency, registers plugin descriptors, and enablesTestKitand plugin publishing. - Project Report Plugin —
project-report -
Adds reporting tasks that produce project information, task graphs, and dependency listings for inspecting a build.
- Build Dashboard Plugin —
build-dashboard -
Generates a single HTML dashboard that links to every report produced by the build (test results, coverage, static analysis, and more).
- Version Catalog —
version-catalog -
Declares a shareable dependency version catalog and publishes it as a TOML artifact so other projects can consume it via
versionCatalogs. - Groovy Gradle Plugin —
groovy-gradle-plugin -
Configures a project to author Gradle plugins as precompiled Groovy DSL scripts in
src/main/groovy, without hand-writing a plugin class.