// Copyright 2018 the original author or authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

[[plugin_reference]]
= Gradle Plugin Reference

This page contains links and short descriptions for all the core plugins provided by Gradle itself.

== JVM languages and frameworks

<<java_plugin.adoc#,Java>>::
Provides support for building any type of Java project.

<<java_library_plugin.adoc#,Java Library>>::
Provides support for building a Java library.

<<groovy_plugin.adoc#,Groovy>>::
Provides support for building any type of http://groovy-lang.org/[Groovy] project.

<<scala_plugin.adoc#,Scala>>::
Provides support for building any type of https://www.scala-lang.org/[Scala] project.

<<play_plugin.adoc#,Play>>::
Proivdes support for building, testing and running https://www.playframework.com/[Play] applications.

<<antlr_plugin.adoc#,ANTLR>>::
Provides support for generating parsers using http://www.antlr.org/[ANTLR].

== Packaging and distribution

<<application_plugin.adoc#,Application>>::
Provides support for building JVM-based, runnable applications.

<<war_plugin.adoc#,WAR>>::
Provides support for building and packaging WAR-based Java web applications.

<<ear_plugin.adoc#,EAR>>::
Provides support for building and packaging Java EE applications.

<<osgi_plugin.adoc#,OSGi>>::
Provides support for creating https://www.osgi.org/[OSGi] packages.

<<publishing_maven.adoc#,Maven Publish>>::
Provides support for <<publishing_overview.adoc#,publishing artifacts>> to Maven-compatible repositories.

<<publishing_ivy.adoc#,Ivy Publish>>::
Provides support for <<publishing_overview.adoc#,publishing artifacts>> to Ivy-compatible repositories.

<<maven_plugin.adoc#,Legacy Maven Plugin>>::
Provides support for publishing artifacts using the <<artifact_management.adoc#,legacy mechanism>> to Maven-compatible repositories.

<<distribution_plugin.adoc#,Distribution>>::
Makes it easy to create ZIP and tarball distributions of your project.

<<java_library_distribution_plugin.adoc#,Java Library Distribution>>::
Provides support for creating a ZIP distribution of a Java library project that includes its runtime dependencies.

== Code analysis

<<checkstyle_plugin.adoc#,Checkstyle>>::
Performs quality checks on your project’s Java source files using http://checkstyle.sourceforge.net/index.html[Checkstyle] and generates associated reports.

<<findbugs_plugin.adoc#,FindBugs>>::
Performs quality checks on your project’s Java source files using http://findbugs.sourceforge.net/[FindBugs] and generates associated reports.

<<pmd_plugin.adoc#,PMD>>::
Performs quality checks on your project’s Java source files using http://pmd.github.io/[PMD] and generates associated reports.

<<jdepend_plugin.adoc#,JDepend>>::
Performs quality checks on your project’s Java source files using http://clarkware.com/software/JDepend.html[JDepend] and generates associated reports.

<<jacoco_plugin.adoc#,JaCoCo>>::
Provides code coverage metrics for your Java project using http://www.eclemma.org/jacoco/[JaCoCo].

<<codenarc_plugin.adoc#,CodeNarc>>::
Performs quality checks on your Groovy source files using http://codenarc.sourceforge.net/index.html[CodeNarc] and generates associated reports.

== IDE integration

<<eclipse_plugin.adoc#,Eclipse>>::
Generates Eclipse project files for the build that can be opened by the IDE. This set of plugins can also be used to fine tune http://projects.eclipse.org/projects/tools.buildship[Buildship's] import process for Gradle builds.

<<idea_plugin.adoc#, IntelliJ IDEA>>::
Generates IDEA project files for the build that can be opened by the IDE. It can also be used to fine tune IDEA's import process for Gradle builds.

== Utility

<<base_plugin.adoc#,Base>>::
Provides common lifecycle tasks, such as `clean`, and other features common to most builds.

<<build_init_plugin.adoc#,Build Init>>::
Generates a new Gradle build of a specified type, such as a Java library. It can also generate a build script from a Maven POM — see https://guides.gradle.org/migrating-from-maven/[_Migrating from Maven to Gradle_] for more details.

<<signing_plugin.adoc#,Signing>>::
Provides support for digitally signing generated files and artifacts.

<<java_gradle_plugin.adoc#,Plugin Development>>::
Makes it easier to develop and publish a Gradle plugin.
