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/implementation separation 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 groovy configuration 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 java plugin.

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 testFixtures component 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 in settings.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-application for 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-application on 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, and distZip/distTar tasks with launcher scripts.

WAR — war

Assembles a Java web application as a WAR archive, including web.xml, static resources, and the runtime classpath under WEB-INF/lib.

EAR — ear

Assembles a Java EE Enterprise Archive (EAR) from component modules, including the application.xml deployment 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.xml per 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 Test tasks 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. Use eclipse-wtp for 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, and build lifecycle 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 wrapper task that generates the Gradle Wrapper scripts and gradle-wrapper.properties for 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 enables TestKit and 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.