Static Analysis for Groovy

CodeNarc analyzes Groovy code for defects, bad practices, inconsistencies, style issues and more. A flexible framework for rules, rulesets and custom rules means it’s easy to configure CodeNarc to fit into your project. Build tool, framework support, and report generation are all enterprise ready.

CodeNarc Rules

CodeNarc triggers violations based on rules. Click the links to the left to view the index of all rules, or individual rule categories (rulesets), such as the basic, or import rules. Or you can create your own ruleset; see how easy it is in this screencast.

Running CodeNarc

Run CodeNarc with the Ant Task, the command-line runner, Docker, or as part of your test suite. Also, plugins exist for Maven, Gradle, Grails, Griffon, SonarQube, Visual Studio Code, and Jenkins. See our Integration page for more details. Reports come in HTML, XML, or text format. Take a look at a Sample CodeNarc HTML Report, or a Sample CodeNarc XML Report.


CodeNarc requires:
  • Java 1.8 or later
  • Groovy version 3.0 or later; Groovy version 4.0 or later for the 3.x.x-groovy-4.x versions of CodeNarc
  • SLF4J API and binding jar(s)
  • GMetrics or GMetrics-Groovy4 2.1.0 or later, if using the Size/Complexity rules

Get it from Maven2

For projects built using Maven, CodeNarc is available from the Maven Central Repository
  • groupId = org.codenarc
  • artifactId = CodeNarc
  • version = 3.x.x for Groovy 3; 3.x.x-groovy-4.x for Groovy 4


We're inspired by the wonderful PMD and Checkstyle Java static analysis tools, as well as the extensive Groovy inspections performed by IntelliJ IDEA.