# Chapter 59. The CodeNarc Plugin

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

## 59.1. Usage

To use the CodeNarc plugin, include the following in your build script:

Example 59.1. Using the CodeNarc plugin

`build.gradle`

    apply plugin: 'codenarc'

The plugin adds a number of tasks to the project that perform the quality checks. You can execute the checks by running `gradle check`.

## 59.2. Tasks

The CodeNarc plugin adds the following tasks to the project:

Table 59.1. CodeNarc plugin - tasks

Task name | Depends on | Type | Description
`codenarcMain` | - | `CodeNarc` | Runs CodeNarc against the production Groovy source files.
`codenarcTest` | - | `CodeNarc` | Runs CodeNarc against the test Groovy source files.
`codenarc`SourceSet`` | - | `CodeNarc` | Runs CodeNarc against the given source set's Groovy source files.

The CodeNarc plugin adds the following dependencies to tasks defined by the Groovy plugin.

Table 59.2. CodeNarc plugin - additional task dependencies

Task name | Depends on
`check` | All CodeNarc tasks, including `codenarcMain` and `codenarcTest`.

## 59.3. Project layout

The CodeNarc plugin expects the following project layout:

Table 59.3. CodeNarc plugin - project layout

File | Meaning
`config/codenarc/codenarc.xml` | CodeNarc configuration file

## 59.4. Dependency management

The CodeNarc plugin adds the following dependency configurations:

Table 59.4. CodeNarc plugin - dependency configurations

Name | Meaning
`codenarc` | The CodeNarc libraries to use

## 59.5. Configuration

See the `CodeNarcExtension` class in the API documentation.