##### General

- Home
- Downloads
- Javadocs
- Mailing Lists
- Bug Tracker
- SourceForge Project
- GitHub Project

##### Running

- Ant Task Usage
- Command-Line
- Run as a Test
- Other Tools/Frameworks

##### Using

- Creating a RuleSet
- Creating a Rule
- Configuring Rules
- Starter RuleSet (All)

##### Report Types

- HTML Report
- XML Report
- Text and IDE Reports

##### Sample Reports

- Sample HTML Report
- Sample XML Report

##### Rules

- Rule Index
- Basic Rules
- Braces Rules
- Concurrency Rules
- Convention Rules
- Design Rules
- DRY Rules
- Enhanced Rules
- Exceptions Rules
- Formatting Rules
- Generic Rules
- Grails Rules
- Groovyism Rules
- Imports Rules
- JDBC Rules
- JUnit Rules
- Logging Rules
- Naming Rules
- Size/Complexity Rules
- Security Rules
- Serialization Rules
- Unnecessary Rules
- Unused Rules

##### Developing

- Developer Guide

##### Project Documentation

- Project Information
- Project Reports

## CodeNarc - Integration with Other Tools / Frameworks

### IDEs

- IntelliJ IDEA - See the IDEA CodeNarc Plugin.
- Eclipse - See the Eclipse CodeNarc Plugin.

### Application Frameworks

- Grails - See the Grails CodeNarc Plugin.
- Griffon - See the Griffon CodeNarc Plugin

### Build and Code Quality Tools

- Gradle build system - See the Gradle CodeNarc Plugin.
- Maven - See the Maven CodeNarc Plugin
- Hudson - The Hudson Violations Plugin includes reporting and trending of CodeNarc violations. Also see this blog post. COMING SOON.
- Sonar - The Sonar Groovy Plugin uses CodeNarc for its static analysis of Groovy source code.

### Customizing ClassLoader for Loading Rule Scripts

Grails (and possibly other tools integrating with CodeNarc) can benefit from using the current thread context `ClassLoader` for loading rule script files, rather than the default base `ClassLoader`. Setting the "codenarc.useCurrentThreadContextClassLoader" system property to "true" uses the current thread context `ClassLoader` for loading rule script files. That enables Grails to load rule script files from within the Grails project, and allows those rule scripts to reference local classes. See GPCODENARC-32. The Grails CodeNarc Plugin automatically sets that system property.